Skip to content

使用 venv 管理项目虚拟环境 ​

上一节已经会在 PyCharm 中查看和切换 Python 解释器。但如果所有项目都直接使用同一个系统 Python,不同项目安装的第三方包就会混在一起。

这一节为每个项目创建独立的 .venv,再让命令行、pip 和 PyCharm 都使用这个环境。

虚拟环境解决什么问题 ​

假设电脑中有两个项目:

text
项目 A:需要某个工具的 1.x 版本
项目 B:需要同一个工具的 2.x 版本

如果两个项目共用系统 Python,更新其中一个项目的依赖,可能影响另一个项目。虚拟环境会为项目准备独立的解释器入口和第三方包目录:

text
系统中的 CPython 3.14
├── 项目 A/.venv
└── 项目 B/.venv

.venv 不会重新下载一套 Python。它以已经安装的 Python 3.14 为基础,为当前项目建立一个隔离环境。

系统 Python 共用与项目虚拟环境隔离架构

图中右侧的 .venv 以系统 Python 3.14 为创建基础,但项目依赖分别存放在各自环境中。

创建项目目录 ​

先打开命令提示符或终端,创建一个练习项目:

shell
mkdir python-project
cd python-project

后面的命令都在 python-project 目录中执行。Windows 命令提示符可以用下面的命令确认当前位置:

shell
cd

PowerShell 使用:

powershell
Get-Location

macOS 或 Linux 使用:

shell
pwd

使用 Python 3.14 创建 .venv ​

Windows ​

使用 Python 启动器明确选择 3.14:

shell
py -3.14 -m venv .venv

macOS 和 Linux ​

如果系统提供 python3.14 命令,可以执行:

shell
python3.14 -m venv .venv

如果课程环境中的 python3 已经指向 Python 3.14,也可以执行:

shell
python3 -m venv .venv

命令正常结束后,项目目录中会出现 .venv。创建过程没有输出通常也表示成功。

不要修改 .venv 内部文件 虚拟环境中的目录和配置由 Python 管理。不要手动移动其中的 python.exe、脚本或包文件;环境失效时直接重建更可靠。

激活虚拟环境 ​

使用 venv 管理项目虚拟环境的完整操作流程架构

激活的作用是让当前终端中的 python 和 pip 优先指向 .venv。

Windows PowerShell ​

powershell
.venv\Scripts\Activate.ps1

如果 PowerShell 提示禁止运行脚本,可以先使用命令提示符完成本节,不需要为了激活虚拟环境修改整台电脑的安全策略。

macOS 和 Linux ​

shell
source .venv/bin/activate

激活后,命令行前面通常会出现 (.venv):

text
(.venv) ...\python-project>

这个标记方便观察,但不能单独证明解释器一定正确。下一步还要检查实际路径。

让 PyCharm 使用 .venv ​

终端、pip 和 PyCharm 使用同一个虚拟环境架构

用 PyCharm 打开刚才创建的 python-project,再按照在 PyCharm 中更换 Python 解释器中的方法进入解释器设置。

选择已有本地环境,并指定下面的解释器:

text
Windows:项目目录\.venv\Scripts\python.exe
macOS/Linux:项目目录/.venv/bin/python

配置完成后,在 PyCharm 中运行:

python
import sys

print(sys.executable)

运行结果应该与终端中的解释器路径一致。随后关闭并重新打开 PyCharm Terminal,再执行一次:

shell
python -c "import sys; print(sys.executable)"

这样可以确认运行按钮和终端使用的是同一个 .venv。

虚拟环境 ​

在虚拟环境中安装依赖 ​

先更新当前环境中的 pip:

shell
python -m pip install --upgrade pip

再安装练习使用的第三方包:

shell
python -m pip install requests

检查安装位置:

shell
python -m pip show requests

输出中的 Location 应位于当前项目的 .venv。下一节会继续学习安装、卸载、版本约束和依赖文件。

退出与重新进入环境 ​

完成当前工作后,可以退出虚拟环境:

shell
deactivate

关闭终端也会结束这一次激活状态。下次重新打开项目时,进入项目目录后再次执行对应系统的激活命令。

激活只影响当前终端 在一个终端中激活 .venv,不会自动改变其他已经打开的终端。每个终端都要单独检查当前解释器。

记录项目依赖 ​

项目代码可以提交和分享,.venv 不适合一起打包。它包含本机路径和当前操作系统相关文件,体积也会不断增加。

在项目根目录创建 .gitignore,写入:

text
.venv/

使用依赖文件记录需要安装的包:

shell
python -m pip freeze > requirements.txt

别人拿到项目后,可以创建自己的虚拟环境,再恢复依赖:

shell
python -m pip install -r requirements.txt
python -m pip check

重建失效的虚拟环境 ​

虚拟环境中记录了本机解释器和项目路径。移动项目、卸载 Python 或直接复制别人的 .venv,都可能让环境失效。

重建时按下面的顺序操作:

  1. 保存 requirements.txt。
  2. 关闭正在使用该环境的 Python 程序和终端。
  3. 删除项目中的 .venv 目录。
  4. 使用 Python 3.14 重新执行 venv 创建命令。
  5. 激活新环境并检查 sys.executable。
  6. 使用 python -m pip install -r requirements.txt 恢复依赖。
  7. 在 PyCharm 中重新选择新环境的解释器。

.venv 是可以重建的运行环境,项目源码和 requirements.txt 才是需要保留的内容。

小结 ​

虚拟环境的完整操作链是:

text
确认 Python 3.14
→ 创建项目和 .venv
→ 激活并验证解释器
→ 配置 PyCharm
→ 安装和记录依赖
→ 退出环境
→ 重新激活或重建恢复

下一节会在这个 .venv 中继续学习 pip。