激活与退出 Python 虚拟环境
目录
在同一台电脑上并行开发多个 Python 项目时,最常见的做法是为每个项目创建独立的虚拟运行环境,避免不同依赖版本之间的冲突。
虚拟环境的创建方法不在本篇讨论范围,可参阅为 Python 项目创建独立虚拟运行环境。
激活虚拟环境 (activate)
1. macOS / Linux(bash / zsh 等)
# 进入项目根目录(假设 .env 与代码位于同级目录)
cd /path/to/project
# 方式一:经典写法(最通用)
source .env/bin/activate
# 方式二:使用点号缩写
. .env/bin/activate
激活成功后,命令行提示符通常会自动加上 (.env)
前缀:
(.env) user@MacBook project %
2. Windows CMD
cd C:\path\to\project
.env\Scripts\activate
3. Windows PowerShell
在 PowerShell 中脚本执行策略可能阻止激活脚本运行,可先放宽当前会话策略:
# 可选:仅对当前会话生效
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
# 激活虚拟环境
.\.env\Scripts\Activate.ps1
4. Fish / C Shell(补充)
venv
会自动生成针对不同 Shell 的脚本。例如在 fish 中:
source .env/bin/activate.fish
如何确认已激活?
- 提示符变化:前缀出现
(.env)
。 which python
/where python
显示路径指向.env
目录:$ which python /absolute/path/to/project/.env/bin/python
python -m pip list
应只列出当前环境已安装的依赖。
退出虚拟环境 (deactivate)
deactivate
执行后提示符前缀消失,系统将回到全局(或上一级) Python 解释器。
常见问题与解决方案
症状 | 可能原因 | 解决方案 |
---|---|---|
source: command not found |
使用了不支持 source 的 Shell(如 fish) |
使用对应的 activate.fish / .csh 脚本,或切换到 bash/zsh |
Activate.ps1 cannot be loaded because running scripts is disabled on this system |
PowerShell 脚本执行策略过于严格 | 运行 Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned 后重试 |
激活后提示符无变化 | 终端主题或自定义 PS1 覆盖 |
通过执行 which python 检查路径确认是否已激活 |
相关阅读 & 交叉引用
推广:阿里云百炼大模型
9折优惠 + 所有模型各百万免费Token →