最标准做法是用venv隔离Python版本和依赖,pyenv管理多版本解释器,requirements.txt固化依赖,Poetry/pdm提供集成化管理。

用虚拟环境隔离不同项目的 Python 版本和依赖,是最标准、最可靠的做法。
用 venv 创建轻量级虚拟环境
Python 3.3+ 自带 venv 模块,无需额外安装。每个项目单独建一个环境,互不干扰:
- 进入项目目录,运行
python -m venv venv(生成名为venv的文件夹) - 激活环境:
• Windows:venv\Scripts\activate.bat
• macOS/Linux:source venv/bin/activate - 激活后命令行前缀会显示环境名,此时
python和pip指向该环境内的解释器和包管理器 - 用
pip install安装的包只存在于当前环境,不影响系统或其他项目
用 pyenv 管理多个 Python 解释器版本
当项目需要不同 Python 大版本(如 3.8、3.11、3.12),pyenv 能帮你下载、切换全局或局部的 Python 版本:
- 安装 pyenv(按官方文档方式,如 macOS 用
brew install pyenv) - 查看可用版本:
pyenv install --list | grep "3\.[89]|3\.1[12]" - 安装某个版本:
pyenv install 3.11.9 - 设为当前目录默认:
pyenv local 3.11.9(会在目录下生成.python-version文件) - 之后再用
python -m venv venv,创建的就是 3.11.9 对应的虚拟环境
用 requirements.txt 固化依赖版本
避免“在我机器上能跑”的问题,每个环境应导出明确的依赖清单:
立即学习“Python免费学习笔记(深入)”;
- 生成当前环境所有包及版本:
pip freeze > requirements.txt - 新环境里一键安装:
pip install -r requirements.txt - 建议在
requirements.txt顶部加注释说明对应 Python 版本,例如:
# Python 3.11.9 - 生产环境可进一步拆分:
requirements-base.txt(核心依赖)、requirements-dev.txt(开发工具),用-r base.txt引用
现代替代方案:Poetry 或 pdm
如果想统一管理 Python 版本、虚拟环境和依赖,Poetry 和 pdm 是更集成的工具:
- 它们自动创建隔离环境,并通过
pyproject.toml声明依赖和 Python 版本约束 - 例如 Poetry 中写
requires-python = "^3.11",运行poetry install时会自动匹配并激活合适版本的环境 - 依赖解析更严谨,支持锁定文件(
poetry.lock),确保多人协作时行为一致 - 适合中大型项目或团队,学习成本略高于 venv + pip,但长期维护性更好










