部署 Sphinx 文档到 GitHub Pages 详细指南
2026/1/9 2:43:08
在Python开发中,虚拟环境是项目隔离的最佳实践。以下是详细的使用指南:
| 工具 | 特点 | 推荐场景 |
|---|---|---|
| venv | Python官方标准库(3.3+) | 简单项目,Python 3.3+ |
| virtualenv | 功能更强大,支持Python 2/3 | 需要兼容Python 2或更多功能 |
| conda | 包管理器+环境管理器 | 科学计算,需要非Python包 |
| pipenv | pip + virtualenv的封装 | 需要自动管理依赖关系 |
| poetry | 现代化的依赖管理和打包工具 | 新项目,注重依赖解析和打包 |
# 为项目创建虚拟环境cdyour_project python -m venv venv# 会在项目目录下创建venv文件夹# 指定Python版本(如果有多个Python)python3.8 -m venv venv python3.11 -m venv venv# 包含系统站点包(不推荐)python -m venv --system-site-packages venv# 创建纯净环境(推荐)python -m venv --without-pip venv# Windows (PowerShell)venv\Scripts\Activate.ps1# 如果遇到执行策略问题,先运行:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# Windows (CMD)venv\Scripts\activate.bat# Linux/Macsourcevenv/bin/activate# 激活后,命令行提示符会显示环境名称# (venv) user@machine:~$deactivate# 安装virtualenvpipinstallvirtualenv# 创建虚拟环境virtualenv venv# 指定Python解释器virtualenv -p python3.8 venv# 创建不包含pip的环境virtualenv --no-pip venvmy_project/ ├── venv/ # 虚拟环境目录(.gitignore忽略) ├── src/ # 源代码 ├── tests/ # 测试代码 ├── requirements.txt # 生产依赖 ├── requirements-dev.txt # 开发依赖 └── .gitignore # 忽略venv目录# 1. 创建项目目录mkdirmy_project&&cdmy_project# 2. 创建虚拟环境python -m venv venv# 3. 激活虚拟环境# Windows: venv\Scripts\activate# Linux/Mac: source venv/bin/activate# 4. 升级pip(可选但推荐)pipinstall--upgrade pip# 5. 安装项目依赖pipinstallrequests flask pandas# 安装需要的包# 6. 导出依赖到requirements.txtpip freeze>requirements.txt# 7. 开发过程中安装新包pipinstallnew_package pip freeze>requirements.txt# 更新requirements.txt# 8. 在新机器/环境中恢复环境pipinstall-r requirements.txt# 9. 退出虚拟环境deactivate# requirements.txt - 生产依赖Flask==2.3.2requests==2.31.0# requirements-dev.txt - 开发依赖-r requirements.txt# 包含生产依赖pytest==7.4.0black==23.7.0flake8==6.0.0# 安装开发依赖pipinstall-r requirements-dev.txt# 安装pipenvpipinstallpipenv# 为项目创建虚拟环境cdmy_project pipenvinstall# 创建Pipfile和虚拟环境# 安装包pipenvinstallflask# 添加到[packages]pipenvinstall--dev pytest# 添加到[dev-packages]# 激活虚拟环境pipenv shell# 运行命令而不激活环境pipenv run python app.py# 查看依赖图pipenv graph# 锁定依赖版本pipenv lock# 安装所有依赖pipenvinstall--dev# 安装poetrypipinstallpoetry# 创建新项目(会创建pyproject.toml)poetry new my_project# 或为现有项目初始化cdexisting_project poetry init# 添加依赖poetryaddflask poetryadd--dev pytest# 激活虚拟环境poetry shell# 运行脚本poetry run python app.py# 安装所有依赖poetryinstall# 只安装生产依赖poetryinstall--no-devCtrl+Shift+P→Python: Select Interpretervenv/bin/python或venv\Scripts\python.exeFile→Settings→Project: <name>→Python InterpreterAddExisting environment,指向虚拟环境的Python# 在虚拟环境中安装ipykernelpip install ipykernel# 将虚拟环境添加到Jupyterpython-m ipykernel install--user--name=venv--display-name="My Project"# 重启Jupyter,选择对应的kernel# 创建activate.ps1自动激活虚拟环境param([string]$envName="venv")# 检查虚拟环境是否存在if(Test-Path"$envName\Scripts\Activate.ps1"){&"$envName\Scripts\Activate.ps1"Write-Host"虚拟环境$envName已激活"-ForegroundColor Green}else{Write-Host"虚拟环境$envName不存在,正在创建..."-ForegroundColor Yellow python-m venv$envName&"$envName\Scripts\Activate.ps1"pip install--upgrade pipWrite-Host"虚拟环境$envName已创建并激活"-ForegroundColor Green}#!/bin/bashENV_NAME="venv"if[-d"$ENV_NAME"];thensource"$ENV_NAME/bin/activate"echo"虚拟环境$ENV_NAME已激活"elseecho"虚拟环境$ENV_NAME不存在,正在创建..."python3 -m venv$ENV_NAMEsource"$ENV_NAME/bin/activate"pipinstall--upgrade pipecho"虚拟环境$ENV_NAME已创建并激活"fi.gitignore中包含venv/、.venv/、env/等requirements.txt或Pipfileruntime.txt或Pipfile指定Python版本.env文件存储敏感信息# 权限问题(Linux/Mac)sudochmod-R755venv/bin/# 虚拟环境损坏# 删除重建rm-rf venv python -m venv venv# 不同平台迁移# 使用pip freeze时,生成platform-independent的requirements.txtpip freeze|grep-v"^-e"|grep-v"@ file">requirements.txt# 虚拟环境位置# 可以放在项目外部的统一目录管理python -m venv ~/.virtualenvs/my_project# 使用virtualenvwrapper或virtualenv管理多个环境通过虚拟环境,你可以确保每个项目都有干净、独立的Python运行环境,这是专业Python开发的基础。