一、开篇:每个项目一个"干净的房间"
想象你有两个项目:项目a需要django 3.2,项目b需要django 4.2。如果你把所有包都装在全局python环境中,两个项目就会打架——这就是"依赖冲突"。
虚拟环境解决了这个问题:
# 不用虚拟环境(全局安装) # pip install django==3.2 # 项目a需要 # pip install django==4.2 # 项目b需要——冲突! # ✅ 用虚拟环境(各自独立) # 项目a有自己的虚拟环境——里面装django 3.2 # 项目b有自己的虚拟环境——里面装django 4.2 # 互不干扰!
虚拟环境是python项目的标配。它给每个项目一个"干净的房间"——隔离的python解释器和pip包。venv是python 3.3+内置的虚拟环境工具,不需要安装任何额外的包。
二、创建和使用虚拟环境
2.1 基本操作流程
# === windows === # 1. 创建虚拟环境(在项目目录下) cd my_project python -m venv venv # 这会在当前目录创建venv文件夹 # 2. 激活虚拟环境 venv\scripts\activate # 激活后,终端前面会显示 (venv) # 3. 确认使用的是虚拟环境中的python where python # windows # 应该显示 venv\scripts\python.exe # 4. 安装依赖 pip install requests flask # 5. 导出依赖 pip freeze > requirements.txt # 6. 退出虚拟环境 deactivate # === linux/mac === # python3 -m venv venv # source venv/bin/activate # deactivate
2.2 虚拟环境的目录结构
my_project/ ├── venv/ # 虚拟环境目录(一般加入.gitignore) │ ├── scripts/ # (windows) python解释器、pip、activate │ │ ├── python.exe │ │ ├── pip.exe │ │ └── activate │ ├── bin/ # (linux/mac) 同上 │ ├── lib/ # 安装的包 │ │ └── site-packages/ │ └── pyvenv.cfg # 配置文件 ├── src/ # 源代码 ├── requirements.txt # 依赖列表 └── readme.md
2.3 venv的常用参数
# 创建虚拟环境时可以指定选项 # 指定python版本(需要系统中已安装) python3.11 -m venv venv # 不安装pip(精简环境) python -m venv venv --without-pip # 系统site-packages对虚拟环境可见 python -m venv venv --system-site-packages # 创建前清空目标目录 python -m venv venv --clear # 升级虚拟环境中的核心依赖(pip, setuptools) python -m venv venv --upgrade-deps
三、ide集成
3.1 vs code中使用虚拟环境
# vs code会自动检测项目中的虚拟环境
# 1. 创建虚拟环境
python -m venv venv
# 2. vs code中按 ctrl+shift+p
# 输入 "python: select interpreter"
# 选择 venv/scripts/python.exe(windows)
# 或 venv/bin/python(linux/mac)
# 3. 新终端自动激活
# vs code打开新终端时会自动执行 activate
# 4. settings.json中设置默认虚拟环境路径
{
"python.venvpath": "venv",
"python.terminal.activateenvironment": true
}
3.2 pycharm中使用虚拟环境
# pycharm创建项目时可以选择使用虚拟环境 # 如果项目已有venv: # file → settings → project → python interpreter # 齿轮图标 → add → existing environment # 选择 venv/scripts/python.exe
四、最佳实践
4.1 虚拟环境管理
# ✅ 习惯一:每个项目一个虚拟环境 # 不要多个项目共享一个虚拟环境 # ✅ 习惯二:虚拟环境目录命名为 venv 或 .venv # 统一命名,团队成员一看就知道 # ✅ 习惯三:虚拟环境目录加入.gitignore # echo "venv/" >> .gitignore # echo ".venv/" >> .gitignore # 不在git中提交虚拟环境! # ✅ 习惯四:维护requirements.txt # 每次安装新包后更新 pip freeze > requirements.txt # ✅ 习惯五:readme中说明环境搭建步骤 """ ## 环境搭建 python -m venv venv # windows: venv\\scripts\\activate # linux/mac: source venv/bin/activate pip install -r requirements.txt """
4.2 完整的项目初始化流程
# 1. 创建项目目录 mkdir my_new_project cd my_new_project # 2. 初始化git git init # 3. 创建虚拟环境 python -m venv venv # 4. 激活虚拟环境 # windows: venv\scripts\activate # linux/mac: source venv/bin/activate # 5. 升级pip python -m pip install --upgrade pip # 6. 安装依赖 pip install flask sqlalchemy # 7. 导出依赖 pip freeze > requirements.txt # 8. 创建.gitignore echo "venv/" >> .gitignore echo "__pycache__/" >> .gitignore echo "*.pyc" >> .gitignore echo ".env" >> .gitignore # 9. 初始化项目代码 mkdir src # 开始写代码...
五、其他虚拟环境工具
# virtualenv —— venv的前身,更多功能 # pip install virtualenv # virtualenv venv # pipenv —— pipfile + 虚拟环境 # pip install pipenv # pipenv install requests # 自动创建/管理虚拟环境 # poetry —— 现代化的依赖管理 # pip install poetry # poetry init # poetry add requests # conda —— anaconda生态,适合数据科学 # conda create -n myenv python=3.11 # 💡 选型建议: # 日常开发 → venv(内置,够用) # 复杂依赖管理 → poetry # 数据科学 → conda # 简单项目 → venv
六、总结
虚拟环境是python项目开发的基本功。它让每个项目拥有独立的python环境,从根本上避免依赖冲突。
核心要点:
- 创建:
python -m venv venv - 激活:windows用
venv\scripts\activate,linux/mac用source venv/bin/activate - 退出:
deactivate - 导出依赖:
pip freeze > requirements.txt - 虚拟环境不提交到git——加入
.gitignore
一句话:开始任何python项目的第一步——创建虚拟环境。这是专业开发者的肌肉记忆。
以上就是一文详解python虚拟环境venv创建与隔离项目依赖的详细内容,更多关于python虚拟环境venv创建与使用的资料请关注代码网其它相关文章!
发表评论