零基础入门 Python 虚拟环境:告别依赖混乱,从这里开始

7 阅读4分钟

如果你刚接触 Python 开发,大概率会遇到这样的问题:A 项目需要requests==2.25.0,B 项目却要求requests==3.0.0,直接安装会导致一个项目运行报错;或者换了电脑,想复现之前的项目,却因为依赖版本不对折腾半天。

这就是 Python 虚拟环境要解决的核心问题 ——为每个项目创建独立的 Python 运行环境,隔离不同项目的依赖包。今天就用最通俗的方式,带你搞定 Python 虚拟环境的使用。

一、为什么需要虚拟环境?

Python 默认把第三方包安装在「全局环境」中,所有项目共用这些包:

  • ❌ 不同项目依赖版本冲突,改了一个项目的包,另一个项目就崩了;
  • ❌ 全局包越装越多,时间久了分不清哪些包是哪个项目用的;
  • ❌ 部署项目时,无法精准复刻开发环境,出现「本地能跑,线上报错」。

而虚拟环境就像给每个项目建了一个「独立房间」:

  • ✅ 每个房间有自己的 Python 解释器和依赖包,互不干扰;
  • ✅ 只安装当前项目需要的包,环境干净;
  • ✅ 可导出依赖清单,一键复刻环境。

二、Python3 自带的虚拟环境工具:venv

Python 3.3 及以上版本内置了venv模块,无需额外安装,是新手的首选。

1. 创建虚拟环境

打开终端(Windows 用 CMD/PowerShell,Mac/Linux 用终端),进入你的项目目录,执行以下命令:

# 语法:python -m venv 虚拟环境名称(建议用venv,直观好记)
python -m venv venv

执行后,项目目录下会生成一个名为venv的文件夹,里面包含了独立的 Python 解释器、pip 工具和依赖目录。

注意

  • Windows 如果提示python不是内部命令,换成python3py -3
  • Mac/Linux 如果系统自带 Python2,建议用python3 -m venv venv

2. 激活虚拟环境

创建后需要「激活」才能使用这个独立环境,激活后终端会显示虚拟环境名称(比如(venv)),表示当前操作的是这个隔离环境。

系统激活命令
Windows (CMD)venv\Scripts\activate.bat
Windows (PowerShell)venv\Scripts\Activate.ps1
Mac/Linuxsource venv/bin/activate

PowerShell 激活提示权限问题?

Windows 默认限制脚本执行,只需以管理员身份打开 PowerShell,执行:

Set-ExecutionPolicy RemoteSigned

选择「Y」确认即可。

3. 使用虚拟环境

激活后,你安装的所有包都会被放在venv文件夹里,和全局环境无关:

# 安装指定版本的包
pip install requests==2.25.0

# 查看当前环境安装的包
pip list

# 卸载包
pip uninstall requests

4. 退出虚拟环境

执行简单的命令即可退出,回到全局环境:

deactivate

5. 导出 / 导入依赖清单(核心实用技巧)

开发完成后,导出当前环境的依赖清单,方便自己或他人复刻环境:

# 导出依赖到requirements.txt文件
pip freeze > requirements.txt

此时项目目录会生成requirements.txt,里面记录了所有包的名称和版本:

requests==2.25.0
urllib3==1.26.4
...

新环境中,只需创建并激活虚拟环境,执行以下命令即可一键安装所有依赖:

pip install -r requirements.txt

三、进阶:更好用的虚拟环境工具(可选)

venv足够满足基础需求,但还有更便捷的工具,新手熟悉venv后可尝试:

  1. virtualenv:比venv更早的第三方工具,功能更丰富(需先安装pip install virtualenv);
  2. conda:适合数据科学 / 机器学习场景,可管理 Python 版本和非 Python 依赖;
  3. pipenv/poetry:整合「虚拟环境 + 依赖管理」,自动处理依赖版本冲突。

四、常见问题解答

  1. Q:虚拟环境可以删除吗? A:可以!直接删除项目目录下的venv文件夹即可,不会影响其他项目。
  2. Q:为什么激活后 pip 安装的包还在全局? A:大概率是没激活成功,检查终端是否有(venv)前缀,或重新执行激活命令。
  3. Q:多个项目需要重复创建虚拟环境吗? A:建议每个项目都创建独立的,这是虚拟环境的核心用法,避免依赖混乱。

总结

  1. Python 虚拟环境的核心作用是隔离不同项目的依赖包,解决版本冲突问题;
  2. 新手优先用 Python 内置的venv,核心流程:创建→激活→使用→退出,配合requirements.txt导出 / 导入依赖;
  3. 每个项目独立创建虚拟环境,养成pip freeze导出依赖的习惯,能大幅提升开发效率。

从现在开始,给每个 Python 项目配一个专属的虚拟环境吧,告别「包装错、项目崩」的烦恼~