给每个 Python 项目一个独立环境:venv 入门实操

举报
AiGuoHou 发表于 2026/11/06 10:02:07 2026/11/06
【摘要】 不同项目可能依赖不同版本的第三方库。用 Python 自带的 venv 为每个项目建立独立环境,可以避免依赖互相干扰,也让项目更容易在另一台电脑上复现。

刚开始学 Python 时,很多人习惯把库直接安装到电脑的全局 Python 中。项目一多,就容易出现“这个程序能运行,另一个却报错”的情况。解决办法并不复杂:给每个项目准备一个自己的小环境。

一、虚拟环境有什么用?

可以把虚拟环境理解成项目专属的工具箱。项目 A 安装的库默认不会混进项目 B;删除项目环境,也不会顺带删除系统里的 Python。它适合练习、脚本开发和多人协作。

Python 自带 venv 模块,不必先安装额外工具。下面以项目目录 weather-demo 为例。

二、创建并启用环境

第一步:打开终端,进入项目目录。

mkdir weather-demo
cd weather-demo

如果目录已经存在,直接进入即可。

第二步:创建环境。

macOS 或 Linux 通常使用:

python3 -m venv .venv

Windows 可以使用:

py -m venv .venv

如果电脑没有 py 启动器,可尝试 python -m venv .venv。命令末尾的 .venv 是环境文件夹名称;用这个名字,编辑器也通常更容易识别它。

第三步:启用环境。

macOS / Linux(bash、zsh):

source .venv/bin/activate

Windows PowerShell:

.venv\Scripts\Activate.ps1

Windows 命令提示符(cmd):

.venv\Scripts\activate.bat

成功后,终端提示符前通常会出现 (.venv)。这表示当前终端已优先使用项目环境中的 Python。

若 PowerShell 提示脚本被禁止执行,可以改用 cmd,或直接调用环境里的 Python;不必为了一个项目随意放宽整台电脑的安全策略。

还有一个容易忽略的细节:创建环境和启用环境是两件事。创建只负责生成 .venv 文件夹;启用则是调整当前终端的命令搜索路径,让输入 python 时优先找到环境里的解释器。关闭终端后,通常需要在新终端里重新启用。

三、安装库并验证

启用环境后,用下面的命令安装一个常见的 HTTP 请求库:

python -m pip install requests

这里使用 python -m pip,能让 pip 跟随当前的 Python,减少“包装到了另一个 Python 里”的困扰。

新建 demo.py,写入:

import requestsresponse = requests.get("https://example.com", timeout=10)print(response.status_code)

运行:

python demo.py

如果网络连接正常,程序会输出网站返回的 HTTP 状态码。

也可以用下面的命令确认当前解释器的位置:

python -c "import sys; print(sys.executable)"

输出路径应指向项目里的 .venv。如果不是,先检查是否已启用环境,以及终端是否位于正确的项目目录。

如果想确认某个库是否装在当前环境,可以执行:

python -m pip show requests

查看当前环境安装了哪些包,则运行:

python -m pip list

遇到导入失败时,先检查解释器路径,再检查安装命令是否在启用环境后执行,往往比反复重装更有效。

在 VS Code 等编辑器中,也要把项目解释器切换到 .venv 内的 Python;否则终端里运行正常,点击编辑器的运行按钮却可能使用全局解释器。选择解释器时,认准项目目录下的 .venv 路径即可。

四、让项目方便交接

虚拟环境通常不应该上传到 Git,也不建议直接复制到另一台电脑。它包含本机路径和解释器文件,移动后可能无法正常工作。

更稳妥的做法是记录项目依赖。在启用环境、安装好所需库后执行:

python -m pip freeze > requirements.txt

把生成的 requirements.txt 和项目代码一起保存。别人取得项目后,在项目目录创建并启用新的 .venv,再执行:

python -m pip install -r requirements.txt

就能按清单安装依赖。

与此同时,在项目根目录的 .gitignore 文件中加入:

.venv/
__pycache__/

这样 Git 就不会把虚拟环境和常见缓存文件纳入版本管理。

五、用完后退出

完成工作后,在终端输入:

deactivate

终端提示符里的 (.venv) 会消失,当前会话便不再使用这个虚拟环境。下次继续开发时,重新进入项目目录并执行对应的启用命令即可。

小结: 记住“一个项目一个 .venv,先启用再安装,依赖写进 requirements.txt”,就能让 Python 项目更整洁,也更容易复现。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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