大家好,欢迎来到 Crossin 的编程教室。
Python 的第三方库极其丰富,但依赖版本问题也常常让新手抓狂。
比如说,你之前写了一个网站,使用的是 Django 3.2 版本。过了半年你要开发新项目,此时 Django 已经升级到了最新版。如果你直接更新库,旧网站的代码可能就直接报错无法运行了。
又或者,你安装了模块 A 的最新版,但另一个项目依赖的模块 B 却要求较老版本的模块 A。这种情况下,你甚至无法成功安装模块 B。
这些版本冲突在开发中十分常见。而解决这个痛点最成熟、最标准的方案,就是使用虚拟环境。
一、 什么是虚拟环境?
Python 开发中的虚拟环境,简单来说就是为不同的项目创建独立且隔离的 Python 运行空间。
通过虚拟环境,我们可以让项目 A 运行在 Python 3.9 + Django 3.2 的独立空间里,而项目 B 运行在 Python 3.11 + Django 5.0 的空间里,两者互不干扰、互不影响。
二、 常见的环境管理工具
创建虚拟环境的工具有很多,新手掌握以下几种主流工具即可:
venv(推荐优先使用):Python 3.3 及以上版本原生内置的模块。不需要额外安装任何第三方包,简单高效,适合绝大多数基础开发场景。
conda:包含了包管理与环境管理功能,能够方便地处理 C/C++ 等复杂依赖。在数据科学、人工智能和深度学习领域被广泛使用。
uv(现代极速工具):近年来业内非常流行的 Rust 开发的新一代包与环境管理工具,速度比传统的 pip 快几十甚至上百倍,适合追求极致效率的开发者。参考:别再傻等pip了!你该试试这个Python环境管理神器
三、 手把手:使用内置 venv 创建虚拟环境
接下来我们以 Python 内置的 venv 为例,介绍最基础、最通用的命令行操作:
1. 创建环境
进入你的项目根目录(命令行用 cd 命令切换),运行以下命令创建一个名为 .venv 的虚拟环境(文件夹名可自定义,前缀加点表示隐藏文件夹):
python -m venv .venv
没有报错的话,项目目录下就会生成一个 .venv 文件夹,这就是隔离出来的虚拟环境。
2. 激活环境
创建完成后,需要“激活”环境,告诉系统接下来使用的 Python 和 pip 来自这个独立空间:
Windows 命令行(CMD / PowerShell):
.venv\Scripts\activate
macOS / Linux 终端:
source .venv/bin/activate
激活成功后,终端命令行最左侧会出现 (.venv) 的括号标识。此时你再执行 pip install 安装任何库,都只会装进这个隔离空间,不会污染系统全局环境。
3. 关闭环境
当开发完毕或需要退出当前环境时,输入以下命令即可退出:
deactivate
四、 虚拟环境的底层原理
为什么简单几条命令就能实现隔离?本质上靠的是环境变量里的 PATH 路径。
当你在命令行输入 python 或 pip 时,系统会按照 PATH 变量中记录的目录顺序去查找可执行文件。
当激活虚拟环境时,系统会临时将该虚拟环境的 bin 或 Scripts 目录拼接到 PATH 的最前面。因此,系统会优先找到并调用虚拟环境里的 Python 解释器和 pip。
如果你不确定当前终端调用的究竟是哪里的 Python,可以使用命令进行确认:
Windows:
where python
macOS / Linux:
which python
五、 项目协作与 IDE 配置
在实际开发和团队协作中,还有几个非常关键的避坑细节:
1. 导出与还原依赖清单(requirements.txt)
虚拟环境隔离了依赖,但当你把代码分享给别人时,不需要把庞大的虚拟环境文件夹发过去。
导出依赖:在激活的环境下运行以下命令,把项目用到的库和精确版本记录到文本文件:
pip freeze > requirements.txt
一键还原:别人拿到你的代码后,只需新建虚拟环境并运行:
pip install -r requirements.txt
2. 切记不要将虚拟环境提交到 Git
虚拟环境体积大且包含本地路径依赖,绝对不要上传到代码仓库。请在项目的 .gitignore 文件中添加:
.venv/
3. 在 IDE 中关联虚拟环境
很多新手发现命令行装好了库,但在编辑器里代码依然报错,这是因为 IDE 没有正确选中解释器:
PyCharm:进入 Settings -> Project: 名称 -> Python Interpreter,点击添加解释器(Add Interpreter),选择 Existing 并指定刚才创建的 .venv 目录下的 Python 可执行文件。
VS Code:按下快捷键 Ctrl+Shift+P(Mac 为 Cmd+Shift+P),搜索并选择 Python: Select Interpreter,直接挑选当前项目目录下的 .venv 运行环境。
留个小作业:
亲自打开命令行,进入一个空目录,使用 python -m venv my_env 创建一个虚拟环境并激活它,尝试在里面安装一个第三方库(如 requests),体会一下独立空间的操作过程吧!
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
感谢转发和点赞的各位~