什么是Python虚拟环境?
Python虚拟环境是一个独立的Python工作空间,可以让你在同一台机器上管理多个项目的依赖,避免不同项目之间的包版本冲突。
创建虚拟环境
使用venv(Python 3.3+推荐)
创建虚拟环境
python -m venv myenv
激活虚拟环境(Linux/macOS)
source myenv/bin/activate
激活虚拟环境(Windows)
myenv\Scripts\activate
使用virtualenv
安装virtualenv
pip install virtualenv
创建虚拟环境
virtualenv myenv
激活虚拟环境
source myenv/bin/activate # Linux/macOS myenv\Scripts\activate # Windows
虚拟环境基本操作
查看当前使用的Python解释器
which python
查看已安装的包
pip list
安装包
pip install requests
安装特定版本
pip install django==3.2.0
从requirements.txt安装
pip install -r requirements.txt
退出虚拟环境
deactivate
管理依赖
生成requirements.txt
pip freeze > requirements.txt
安装开发依赖
pip install -r requirements-dev.txt
升级所有包
pip list —outdated pip install —upgrade package_name
虚拟环境最佳实践
- 每个项目单独创建虚拟环境
- 将虚拟环境目录添加到.gitignore
- 及时更新requirements.txt
- 使用pip-tools管理依赖版本
安装pip-tools
pip install pip-tools
创建requirements.in文件
echo “django>=3.2,<4.0” > requirements.in echo “requests>=2.25.0” >> requirements.in
编译requirements.txt
pip-compile requirements.in
高级用法
使用conda虚拟环境
创建conda环境
conda create -n myenv python=3.9
激活conda环境
conda activate myenv
安装包
conda install numpy pandas
导出环境
conda env export > environment.yml
使用pipenv
安装pipenv
pip install pipenv
创建虚拟环境并安装包
pipenv install requests pipenv install —dev pytest
激活虚拟环境
pipenv shell
运行命令
pipenv run python app.py
常见问题解决
虚拟环境激活失败
给激活脚本执行权限(Linux/macOS)
chmod +x myenv/bin/activate
Windows PowerShell执行策略
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
虚拟环境位置问题
创建虚拟环境在项目目录外
python -m venv ../venvs/myproject
使用绝对路径激活
source /path/to/venv/bin/activate