首页
学习
活动
专区
圈层
工具
发布

彻底搞懂 Python 虚拟环境,告别依赖冲突

大家好,欢迎来到 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),体会一下独立空间的操作过程吧!

如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~

感谢转发点赞的各位~

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OyHXG8cnh5wXKQzHT9PLZzhQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券