page contents

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

你有没有遇到过这种情况——项目 A 需要 Django 3.2,项目 B 需要 Django 4.1。你装完这个,那个就崩了。改完那个,这个又炸了。

attachments-2026-04-x3Jb0jTI69e82733e3015.png你有没有遇到过这种情况——项目 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 是虚拟环境的名字,你可以随便取。常见的有 venvenv.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编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1979 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1979 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章