当前位置:首页>python>Python 虚拟环境:别再把项目搞成一锅粥了

Python 虚拟环境:别再把项目搞成一锅粥了

  • 2026-10-11 08:42:41
Python 虚拟环境:别再把项目搞成一锅粥了

Python 虚拟环境:别再把项目搞成一锅粥了

我是陈默,一个正拼命上岸的码农。

你有没有遇到过这种情况——

项目 A 需要 Django 3.2,项目 B 需要 Django 4.1。你装完这个,那个就崩了。改完那个,这个又炸了。

然后你花了一整个下午在 Stack Overflow 上找答案,最后只能无奈地重装 Python。

这不是你的错。是因为你少学了一个东西——虚拟环境。


1. 为什么需要虚拟环境?

想象一下你的电脑是一个大仓库。

你所有的 Python 包都往里面扔。Flask、Django、Requests、NumPy……全都堆在一起。

时间一长,你会遇到三个问题:

第一,版本冲突。 项目 A 要 requests 2.25,项目 B 要 requests 2.28。你只能留一个,另一个就得哭。

第二,依赖混乱。 你根本不知道哪个项目用了哪个包。删又不敢删,装又不敢装。

第三,部署困难。 你本地跑得好好的,上了服务器就报错。因为服务器上的包版本跟你本地不一样。

虚拟环境就是给每个项目建一个独立的小仓库。互不干扰,各管各的。

这是 Python 工程化的第一步。也是最重要的一步。


2. 用 venv 创建你的第一个虚拟环境

Python 3.3 以后,标准库自带了 venv 模块。不用装任何额外的东西。

打开终端,进入你的项目目录,然后执行:

python3 -m venv myenv

就这一行命令,你的虚拟环境就创建好了。

myenv 是虚拟环境的名字,你可以随便取。常见的有 venv、env、.venv。

创建完之后,你的项目目录里会多一个 myenv 文件夹。这里面就是你的独立 Python 环境。

但注意——光创建还不够。

你需要激活它。

macOS / Linux:

source myenv/bin/activate

Windows:

myenv\Scripts\activate

激活之后,你会看到终端提示符前面多了一个 (myenv)。这就说明你已经在虚拟环境里了。

现在你用 pip install 装的任何包,都只在这个虚拟环境里。不会污染系统的 Python。

用完了,想退出?一行命令:

deactivate

就这么简单。


3. 虚拟环境的日常操作

创建和激活只是开始。日常开发中,你还需要掌握几个关键操作。

安装依赖。

激活虚拟环境后,正常使用 pip 就行:

pip install flaskpip install requests==2.28.0

这些包只会安装在当前虚拟环境里。

导出依赖列表。

项目写完了,要给别人用。你怎么告诉对方需要装哪些包?

pip freeze > requirements.txt

这个命令会把当前环境里所有包和版本号写入 requirements.txt 文件。

对方拿到项目后,一条命令就能装好所有依赖:

pip install -r requirements.txt

这是团队协作的基本操作。

删除虚拟环境。

不需要了?直接删掉文件夹就行:

rm -rf myenv

不会影响系统 Python,也不会影响其他项目的虚拟环境。干净利落。

一个建议—— 把虚拟环境文件夹加入 .gitignore。你不需要把环境本身提交到代码仓库,只需要提交 requirements.txt。


4. 几个常见的坑

新手用虚拟环境,总会踩几个坑。我帮你提前避一避。

坑一:忘了激活虚拟环境就装包。

你兴致勃勃地 pip install flask,装完发现项目还是找不到 Flask。

因为你没激活虚拟环境,包装到了系统 Python 里。

解决办法:装包之前,先看一眼终端提示符有没有 (myenv)。养成习惯。

坑二:虚拟环境路径里带中文或空格。

Windows 用户特别容易中招。项目放在"我的文档"或者桌面,路径里有空格和中文。虚拟环境创建可能失败,或者激活后各种报错。

解决办法:项目路径只用英文,不要有空格。

坑三:IDE 没有配置虚拟环境。

你在终端激活了虚拟环境,但 VS Code 或 PyCharm 还在用系统 Python。运行代码的时候各种找不到包。

解决办法:在 IDE 里手动选择虚拟环境的 Python 解释器。

VS Code 里按 Cmd+Shift+P,输入 "Python: Select Interpreter",选择你虚拟环境里的 Python。


最后

虚拟环境不是什么高级技术。它是 Python 开发的底线操作。

就像做饭之前先洗手一样——不是可选项,是基本功。

回顾一下今天的内容:

  1. 虚拟环境解决版本冲突、依赖混乱和部署问题
  2. 用 python3 -m venv myenv 创建,source 激活,deactivate 退出
  3. 用 pip freeze 导出依赖,pip install -r 安装依赖
  4. 注意激活状态、路径命名和 IDE 配置

去动手创建一个虚拟环境吧。五分钟的事,但会让你省下无数个被依赖问题折磨的下午。

今天就到这里。

我是陈默,我们下期再见。


如果你觉得这篇文章有帮助,欢迎关注我。我会持续分享 Python 学习的干货。

最新文章

随机文章