Python 入门:第一次用虚拟环境,给每个项目一个干净的依赖空间

举报
yd_214896353 发表于 2026/11/10 06:10:06 2026/11/10
【摘要】 刚学 Python 的时候,我做过一件现在想起来有点后怕的事:所有练习都装在同一个全局环境里。今天学爬虫装一个库,明天做数据分析又装一个库,版本一升级,昨天还能跑的代码今天就报错了。那一刻我才明白,问题不在代码本身,而在于我没有给每个项目一个干净的依赖空间。虚拟环境,就是为了解决这个问题而存在的。一、什么是虚拟环境虚拟环境可以理解为一个独立的小房间。每个项目住进自己的房间,里面有自己的 Py...

刚学 Python 的时候,我做过一件现在想起来有点后怕的事:所有练习都装在同一个全局环境里。今天学爬虫装一个库,明天做数据分析又装一个库,版本一升级,昨天还能跑的代码今天就报错了。那一刻我才明白,问题不在代码本身,而在于我没有给每个项目一个干净的依赖空间。虚拟环境,就是为了解决这个问题而存在的。

一、什么是虚拟环境

虚拟环境可以理解为一个独立的小房间。每个项目住进自己的房间,里面有自己的 Python 解释器和自己安装的第三方库,互不打扰。项目 A 需要某个库的 1.0 版本,项目 B 需要同一个库的 2.0 版本,在各自的房间里,它们可以和平共处,不会互相覆盖,也不会因为一次升级把另一个项目弄坏。

更重要的是,虚拟环境让项目变得可以搬运。别人拿到你的项目,只要按同一份依赖清单安装,就能在自己的电脑上复现出差不多的运行环境。这比口头说一句“我装了某某库”要可靠得多。

二、第一次创建虚拟环境

Python 自带了一个创建虚拟环境的工具,名字叫 venv,不需要额外安装。做法很简单:先给项目建一个文件夹,进入这个文件夹,然后在命令行里创建一个名叫 venv 的虚拟环境。创建完成后,文件夹里会多出一个 venv 目录,里面装着这个环境专用的解释器和安装工具。

创建只是第一步,关键是激活。激活之后,命令行前面会出现一个小标记,提示你现在已经在这个虚拟环境里了。这时再安装第三方库,装进的就是这个环境,而不是全局环境。退出环境也很简单,一条命令就能回到原来的状态。

三、装库、记账、还原

在虚拟环境里装库,和平时一样使用 pip。装完之后,我建议立刻做一件事:把当前环境的依赖清单写进一个 requirements.txt 文件。这个文件就是项目的购物清单,记录了每个库的名字和版本。

换一台电脑,或者过一段时间想重新搭建环境时,不用再凭记忆一个一个装库,只要按清单安装一次,就能把环境还原出来。这个习惯看起来多了一步,实际上省下了很多排错的时间。

四、一个小练习:给记账本配一个专属环境

我第一次真正用上虚拟环境,是做一个很小的记账本练习。先建项目文件夹,再创建并激活虚拟环境,然后只装这个练习需要的两个库:一个用来处理表格数据,一个用来画简单的图表。写完代码后,把依赖写进清单文件,最后停用环境。

第二天,我打开另一个旧项目,发现它的环境一点都没受影响。那种安心感,就是虚拟环境带来的最大好处:每个项目都有自己的空间,改一个不会牵连另一个。

五、新手最容易踩的三个坑

第一个坑是忘记激活。明明创建了环境,却在全局环境里装库,结果运行时还是找不到库。每次开始写代码前,先看一眼命令行前面有没有环境标记,养成这个习惯能少走很多弯路。

第二个坑是把虚拟环境文件夹一起发给别人。venv 文件夹通常很大,而且和操作系统有关,别人不一定能直接用。正确的做法是只分享代码和依赖清单,让对方自己创建环境、按清单安装。

第三个坑是依赖清单长期不更新。装了新库却不更新清单,过一段时间自己都忘了装过什么。每次装完新库就顺手更新一次清单,花不了几秒钟,却能让项目一直保持可复现的状态。

六、从今天开始的小习惯

如果你也刚开始学 Python,不妨从今天的第一个小项目开始,就给它配一个虚拟环境。步骤只有四步:创建、激活、安装、记录依赖。熟练之后,这四步加起来不到一分钟。

一个干净的依赖空间,不会让代码立刻变厉害,但它能让你把精力放在真正重要的事情上:理解问题、写出清晰的代码、做出能跑起来的小工具。等项目越来越多的时候,你会感谢今天这个小小的决定。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。