Python 虚拟环境入门:用 venv 告别“装了包却跑不起来”

举报
yd_256733395 发表于 2026/10/30 14:59:37 2026/10/30
【摘要】 用 Python 自带的 venv 为每个项目创建独立虚拟环境,配合 requirements.txt 管理依赖,避开常见环境问题

刚学 Python 的同学经常遇到这样的情况:在一个项目里装了某个版本的库,结果另一个项目突然报错;或者在自己电脑上能跑的脚本,换台机器就提示找不到模块。这些问题大多源于所有项目共用同一个全局 Python 环境。解决办法很简单:给每个项目单独建一个虚拟环境。Python 3 自带的 venv 模块就能做到,不需要额外安装工具。

一、创建虚拟环境

在项目根目录执行 python3 -m venv .venv,会生成一个 .venv 文件夹,里面有独立的解释器和 site-packages 目录。之后在这个环境里装的包,只属于这个项目,不会影响系统和其他项目。建议把 .venv 加进 .gitignore,环境本身不需要提交到仓库。

二、激活与退出

Linux 和 macOS 下执行 source .venv/bin/activate,Windows 下执行 .venv\Scripts\activate。激活后命令行前面会出现 (.venv) 提示,此时的 python 和 pip 都指向虚拟环境。用 which python 可以确认路径。工作结束后输入 deactivate 即可退出。

三、记录依赖:requirements.txt

装好需要的库之后,执行 pip freeze > requirements.txt,把当前环境的包和版本号写进文件。别人拿到项目后,只要新建虚拟环境再执行 pip install -r requirements.txt,就能得到一致的依赖。如果只想记录自己直接用到的库,也可以手动维护这个文件,并写明版本范围,例如 requests>=2.31,<3。

四、常见坑

第一,忘记激活就 pip install,包会装到全局环境,可以先看命令行前缀再操作。第二,在 IDE 里运行脚本时,记得把解释器切换到 .venv 里的 python,否则 IDE 仍然使用系统解释器。第三,不要直接移动或重命名 .venv 目录,里面的脚本写死了绝对路径,移动后最好删掉重建。第四,升级 Python 大版本后,旧的虚拟环境也应该重新创建。

五、在服务器上同样适用

部署到云服务器时,同样建议用虚拟环境运行服务。比如用 systemd 托管一个 Flask 应用,ExecStart 直接写 .venv/bin/python app.py 或 .venv/bin/gunicorn 的绝对路径,就不用担心系统 Python 升级把依赖弄乱。配合 requirements.txt,在新服务器上重建环境只需要几条命令。

小结

一个项目一个虚拟环境,依赖写进 requirements.txt,运行前确认解释器路径,这三条习惯能帮你避开大部分“环境问题”。等项目变复杂后,再考虑 Poetry、uv 等更完整的工具,它们的核心思路和 venv 是一样的。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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