Python 版本与虚拟环境
在 Python 开发中,管理不同的项目依赖和 Python 版本是一个常见挑战。一个项目可能需要某个特定版本的库,而另一个项目可能需要该库的另一个不兼容版本。虚拟环境就是为了解决这个问题而生的。
Python 版本管理
有时,你可能需要在同一台计算机上使用多个 Python 版本(例如,同时使用 Python 3.8 和 Python 3.10)。管理多个 Python 版本的工具有很多,其中最流行的是 pyenv。
pyenv: 是一个流行的命令行工具,可以让你轻松地安装、切换和管理多个 Python 版本。它在 macOS 和 Linux 上被广泛使用。对于 Windows 用户,可以使用pyenv-win。
为什么需要多版本管理?
- 兼容性测试: 确保你的代码能在不同 Python 版本下正常运行。
- 维护旧项目: 一些老项目可能依赖于已经不再是最新版的 Python。
什么是虚拟环境?
虚拟环境是一个自包含的目录树,其中包含一个特定版本的 Python 安装,以及一些额外的包。它的核心思想是为每个项目创建一个隔离的、独立的 Python 环境。
使用虚拟环境的好处:
- 依赖隔离: 每个项目都有自己独立的库和依赖项,避免了不同项目之间的版本冲突。你可以为一个项目安装
requests==2.20.0,同时为另一个项目安装requests==2.25.1。 - 保持全局环境清洁: 避免将所有包都安装到系统的全局 Python 环境中,这会让全局环境变得混乱且难以管理。
- 明确项目依赖: 当你为一个项目设置了虚拟环境,该环境中的所有包都是这个项目所需要的。这使得生成
requirements.txt文件变得非常容易,方便与他人协作。
如何使用虚拟环境?
从 Python 3.3 开始,标准库中内置了 venv 模块,用于创建虚拟环境。这是目前推荐的标准做法。
1. 创建虚拟环境
打开终端或命令行,导航到你的项目目录,然后运行以下命令:
# python3 -m venv <虚拟环境的名称>
# 通常,我们将虚拟环境命名为 'venv' 或 '.venv'
python3 -m venv venv执行后,你会在项目目录下看到一个名为 venv 的新文件夹。这个文件夹包含了 Python 解释器的副本和一些管理脚本。
提示: 最好将虚拟环境文件夹(如
venv/)添加到你的.gitignore文件中,这样它就不会被提交到版本控制系统里。
2. 激活虚拟环境
创建环境后,你需要激活它才能开始使用。
在 macOS / Linux 上:
bashsource venv/bin/activate在 Windows 上 (使用 Command Prompt):
bash.\venv\Scripts\activate在 Windows 上 (使用 PowerShell):
powershell.\venv\Scripts\Activate.ps1
激活后,你会看到你的命令行提示符前面出现了 (venv) 的字样,这表示你现在正处于虚拟环境中。在此之后,你使用的 python 和 pip 命令都将是这个独立环境中的版本。
3. 在虚拟环境中安装包
激活环境后,你可以像平常一样使用 pip 安装包,但这些包只会被安装到当前的虚拟环境中。
(venv) $ pip install requests
(venv) $ pip install numpy pandas4. 退出虚拟环境
当你完成工作,想要返回到全局 Python 环境时,只需运行:
(venv) $ deactivate管理项目依赖: requirements.txt
为了让其他开发者(或者未来的你)能够轻松地重建项目的环境,你应该创建一个 requirements.txt 文件来记录所有的依赖。
生成
requirements.txt: 在激活虚拟环境后,运行以下命令。它会将当前环境中所有已安装的包及其版本号输出到文件中。bashpip freeze > requirements.txt从
requirements.txt安装依赖: 当其他人获取你的项目后,他们可以创建并激活自己的虚拟环境,然后运行以下命令来安装所有必需的包:bashpip install -r requirements.txt