最标准做法是用venv隔离Python版本和依赖,pyenv管理多版本解释器,requirements.txt固化依赖,Poetry/pdm提供集成化管理。
用虚拟环境隔离不同项目的 Python 版本和依赖,是最标准、最可靠的做法。
Python 3.3+ 自带 venv 模块,无需额外安装。每个项目单独建一个环境,互不干扰:
python -m venv venv(生成名为 venv 的文件夹)venv\Scripts\activate.batsource venv/bin/activate
python 和 pip 指向该环境内的解释器和包管理器pip install 安装的包只存在于当前环境,不影响系统或其他项目当项目需要不同 Python 大版本(如 3.8、3.11、3.12),pyenv 能帮你下载、切换全局或局部的 Python 版本:
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 对应的虚拟环境避免“在我机器上能跑”的问题,每个环境应导出明确的依赖清单:
pip freeze > requirements.txt
pip install -r requirements.txt
requirements.txt 顶部加注释说明对应 Python 版本,例如:requirements-base.txt(核心依赖)、requirements-dev.txt(开发工具),用 -r base.txt 引用如果想统一管理 Python 版本、虚拟环境和依赖,Poetry 和 pdm 是更集成的工具:
pyproject.toml 声明依赖和 Python 版本约束requires-python = "^3.11",运行 poetry install 时会自动匹配并激活合适版本的环境poetry.lock),确保多人协作时行为一致