Python怎么用venv创建和激活虚拟环境

凌晨两点半
凌晨两点半
发布时间:2026-10-10| 3人浏览过
原创
Python怎么用venv创建和激活虚拟环境
图 1:Python venv 虚拟环境核心步骤与隔离机制总览
在 Python 项目开发中,不同项目往往需要不同版本的第三方包。直接使用全局环境安装不仅容易引发版本冲突,还可能污染操作系统自带的 Python 环境。Python 官方自 3.3 版本起内置了 venv 模块,只需执行两条基础命令即可为指定项目创建完全独立的虚拟环境。本文将围绕虚拟环境的创建、跨平台激活、环境验证以及日常退出展开详细说明。

为什么开发项目必须使用虚拟环境

当我们在电脑上直接使用 pip install 安装第三方包时,这些包默认会被存放到系统级或用户级的全局 site-packages 目录中。假设项目 A 需要 Django 3.2 进行维护,而新开展的项目 B 需要升级到 Django 5.0,在全局环境下安装新版本就会直接覆盖旧版本,导致旧项目无法正常运行。

虚拟环境的本质是在项目目录中创建一个独立的文件夹,该文件夹包含了专属于该项目的 Python 解释器快捷链接(或副本)、独立的 pip 工具以及专属的第三方包存放目录。激活虚拟环境后,所有依赖安装和脚本运行都会限定在当前项目范围内,与系统全局环境彻底隔离。

Python怎么用venv创建和激活虚拟环境
图 2:全局环境污染与 venv 独立沙箱隔离机制对比

使用 venv 创建虚拟环境

在创建虚拟环境之前,请先打开终端(macOS/Linux)或命令行窗口(Windows 的 CMD 或 PowerShell),进入你的目标项目所在目录。建议将虚拟环境文件夹存放在项目根目录下,通用习惯命名为 .venv 或 venv。

执行以下命令即可在当前目录下创建虚拟环境:

# 进入你的工作项目目录
cd /path/to/your_project

# 在当前目录下创建名为 .venv 的虚拟环境
python -m venv .venv

注意:在 macOS 或部分 Linux 系统中,系统默认的 python 命令可能指向 Python 2 或未绑定,请明确使用 python3 -m venv .venv。在 Ubuntu/Debian 系统中,如果提示未找到模块,可以通过系统包管理器执行 sudo apt install python3-venv 安装支持组件。

该命令中各参数的具体含义如下:

  • python(或 python3):调用系统的 Python 主解释器。
  • -m venv:告诉解释器以脚本模式运行标准库中的 venv 模块。
  • .venv:指定新建虚拟环境的目标文件夹名称。以点开头命名的文件夹在 Unix 系统中默认隐藏,便于保持项目目录清爽。
Python怎么用venv创建和激活虚拟环境
图 3:venv 创建流程及生成目录结构拆解

激活虚拟环境(不同操作系统对比)

创建目录后,虚拟环境并不会自动生效,必须通过执行激活脚本将当前终端会话的环境变量(主要是 PATH)临时重定向到该虚拟环境目录下。Windows 与 Unix(macOS / Linux)的激活路径和命令存在明显区别。

1. macOS 与 Linux 环境

在 bash、zsh 或其他 Unix 终端中,使用 source 命令激活环境:

# 激活虚拟环境
source .venv/bin/activate

2. Windows 环境

Windows 根据你使用的终端类型,执行对应的脚本文件:

# 如果使用的是 命令提示符 (CMD):
.venv\Scripts\activate.bat

# 如果使用的是 PowerShell:
.venv\Scripts\Activate.ps1

PowerShell 脚本权限提示:在 Windows PowerShell 中首次执行激活命令时,若报错 无法加载文件 ... 因为在此系统上禁止运行脚本,这是系统执行策略限制所致。可以以管理员身份或当前用户运行以下命令放宽策略权限:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Python怎么用venv创建和激活虚拟环境
图 4:Windows 与 macOS/Linux 激活命令与目录对比

如何验证虚拟环境已成功激活

执行激活命令后,可以通过以下两点确认虚拟环境已经生效:

  1. 终端提示符前缀变化:终端最左侧通常会出现包含虚拟环境名称的括号前缀,例如 (.venv) user@machine:~$。这表明当前终端正在该环境下工作。
  2. 检查 Python 解释器实际路径:在终端中查询 python 命令的实际执行位置。若返回路径位于你项目的 .venv 文件夹内,则说明配置无误。
# 在 macOS 或 Linux 下查询路径:
which python
# 正常示例输出:/Users/username/my_project/.venv/bin/python

# 在 Windows 下查询路径:
where python
# 正常示例输出:C:\Projects\my_project\.venv\Scripts\python.exe

此时,使用 pip list 命令查看已安装列表,通常只会显示最基础的 pip 与 setuptools,而不会看到系统全局安装的其他包,这说明干净隔离的开发沙箱已经准备完毕。

日常使用:安装包、导出依赖与退出环境

在虚拟环境激活状态下,你可以直接像平常一样通过 pip 安装项目所需的依赖包。所有下载的文件都会自动落入当前环境专属的 site-packages 目录:

# 安装项目依赖包
pip install requests

# 导出当前虚拟环境的所有安装包及精确版本号
pip freeze > requirements.txt

# 在新机器或新成员拉取代码后,一键还原环境依赖
pip install -r requirements.txt

当当前阶段的开发任务完成,或者需要切换到其他项目时,只需要在终端中输入一条简单的退出命令:

deactivate

执行 deactivate 后,终端提示符前缀中的 (.venv) 会立即消失,环境变量自动还原为系统初始状态,随后的所有命令将恢复使用全局环境。

Python怎么用venv创建和激活虚拟环境
图 5:Python venv 全生命周期管理与工程实践总结

开发中常见问题与注意事项

在实际使用 venv 过程中,有两项工程细节需要格外注意:

  • 切勿将虚拟环境目录提交到版本控制:虚拟环境内包含大量二进制文件及针对特定操作系统的软链接,体积庞大且不具备跨机器兼容性。切记在项目的 .gitignore 文件中加入 .venv/ 或 venv/。团队协同或部署时,只需提交 requirements.txt,接收方在目标机器上重新执行创建与安装命令即可。
  • 不要直接重命名或跨目录移动虚拟环境:venv 在初始化时,会在 pyvenv.cfg 以及激活脚本中写入当前环境的绝对路径。如果直接移动了包含 .venv 的父文件夹,通常会导致 python 和 pip 无法找到正确的解析路径而报错。遇到项目迁移,最稳妥的方法是直接删除旧的 .venv 文件夹,然后在新的位置重新执行 python -m venv .venv 并通过 requirements.txt 恢复依赖。
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。