本文目录导读:

在Python脚本中管理虚拟环境,通常建议使用 venv(Python 3.3+ 内置)或 virtualenv(第三方,支持更老的Python版本),以下是标准的管理方法:
创建虚拟环境
使用 venv(推荐,Python 3.3+)
# 在当前目录创建虚拟环境(会在当前目录生成一个文件夹) python3 -m venv myenv # 在指定路径创建 python3 -m venv /path/to/myenv
使用 virtualenv(兼容Python 2)
# 安装 pip install virtualenv # 创建 virtualenv myenv
激活虚拟环境
Windows
# CMD myenv\Scripts\activate.bat # PowerShell myenv\Scripts\Activate.ps1 # 如果遇到执行策略限制,先运行: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Linux/macOS
source myenv/bin/activate
激活后,终端提示符会显示环境名称:
(myenv) user@host:~$
在虚拟环境中安装依赖
激活后,所有 pip install 操作都会安装到当前虚拟环境:
pip install flask pip install -r requirements.txt # 从文件安装
退出虚拟环境
deactivate
删除虚拟环境
直接删除文件夹即可:
rm -rf myenv # Linux/macOS rmdir /s myenv # Windows CMD
最佳实践:项目与虚拟环境
推荐的项目结构
my_project/
├── myenv/ # 虚拟环境(不要提交到Git)
├── src/ # 源代码
│ └── main.py
├── requirements.txt # 依赖清单
└── .gitignore # 忽略myenv/
自动管理工具
pipenv(更现代化的方式):
# 安装 pip install pipenv # 创建环境并安装依赖 pipenv install flask # 激活 pipenv shell
poetry(更强大的依赖管理):
# 安装 curl -sSL https://install.python-poetry.org | python3 - # 初始化项目 poetry init # 添加依赖 poetry add flask
在脚本中自动使用虚拟环境
方法1:在脚本开头指定解释器路径
#!/path/to/myenv/bin/python # 或者Windows格式 #!C:\path\to\myenv\Scripts\python.exe import sys print(sys.executable) # 会显示虚拟环境的python路径
方法2:使用shebang(Unix/Linux)
#!/usr/bin/env python3 # 但这样可能会使用系统默认的Python # 更精确的方式: #!./myenv/bin/python
方法3:IDE设置
在VS Code、PyCharm等IDE中,可以直接选择项目的虚拟环境作为Python解释器。
常见问题
忘记在虚拟环境中运行脚本
# 错误:使用了系统Python python script.py # 正确:用虚拟环境的Python ./myenv/bin/python script.py # 或 /path/to/myenv/bin/python script.py
分发项目给他人
只提供 requirements.txt,不包含虚拟环境文件夹:
# 生成依赖清单 pip freeze > requirements.txt # 其他人使用时 python -m venv newenv source newenv/bin/activate pip install -r requirements.txt
| 场景 | 推荐方案 |
|---|---|
| 简单项目、学习 | venv |
| 团队协作、需要锁定版本 | pipenv 或 poetry |
| 同时管理多个Python版本 | pyenv + virtualenv |
| Docker容器 | 单个Python环境,无需虚拟环境 |
核心原则:每个项目独立的虚拟环境,用 requirements.txt 或 Pipfile 管理依赖,不要将虚拟环境文件夹提交到版本控制系统。