Python 项目总是装错库?用虚拟环境彻底解决依赖混乱
一、为什么需要虚拟环境?
假设你正在学习两个 Python 项目。
项目 A 使用某个库的旧版本,项目 B 却需要它的新版本。如果把所有库都安装到同一个 Python 环境中,升级依赖时就可能影响其他项目。
虚拟环境(Virtual Environment)就是为了解决这个问题。
你可以把它理解为每个项目独立的工具箱:项目需要什么库,就安装什么库,不必担心其他项目的依赖被随意改变。
Python 自带的 venv 模块可以创建这种独立环境,不需要额外安装专门的虚拟环境工具。每个环境都有自己的 Python 可执行文件和第三方库安装目录。
二、第一步:创建项目文件夹
首先,确认电脑已经安装 Python。
打开终端或命令提示符,输入:
python --version
如果系统显示 Python 版本号,说明这个命令可以正常调用 Python。如果提示找不到命令,可以先安装 Python,或者检查系统的 PATH 配置。
接着,创建一个用于练习的项目目录:
mkdir my_project
cd my_project
然后创建虚拟环境:
python -m venv .venv
这条命令会在当前目录下创建一个名为 .venv 的虚拟环境。
这里的 -m venv 表示运行 Python 自带的 venv 模块,.venv 则是环境目录的名称。你也可以将它命名为 venv,但 .venv 是一种常见的项目目录命名方式。
如果你的电脑使用 python3 调用 Python,可以将命令中的 python 替换为 python3。
创建完成后,项目目录大致如下:
my_project/
├── .venv/
└── (你的项目代码)
.venv 中存放的是环境相关文件。通常不需要手动修改其中的内容,也不要把自己的业务代码放进去。
三、第二步:激活虚拟环境
创建环境后,还需要让终端优先使用它。
macOS 或 Linux:
source .venv/bin/activate
Windows 命令提示符(CMD):
.venv\Scripts\activate.bat
Windows PowerShell:
.venv\Scripts\Activate.ps1
激活成功后,终端提示符前面通常会出现 (.venv) 这样的标记。
这意味着,在当前终端中调用 python 和 pip 时,通常会优先使用这个虚拟环境中的解释器和包管理工具。
如果 PowerShell 因执行策略而拒绝运行激活脚本,不要急着修改系统级安全设置。你可以改用 CMD,或者查阅 Python 官方文档中的相关说明。
需要注意:激活环境并不是使用虚拟环境的绝对前提。你也可以直接调用环境中的 Python 可执行文件,只是初学者使用激活方式通常更方便。
四、第三步:安装库并运行代码
现在,我们用一个简单例子验证虚拟环境是否生效。
在激活环境后,输入:
python -m pip install requests
这里使用 python -m pip,可以让 pip 与当前调用的 Python 解释器对应,减少装错环境的可能。
安装完成后,新建一个 main.py 文件,写入:
import requests
response = requests.get(
"https://example.com",
timeout=10
)
print("状态码:", response.status_code)
print("网页长度:", len(response.text))
运行程序:
python main.py
如果网络连接正常,并且目标网站允许访问,你通常会看到类似下面的输出:
状态码:200
网页长度:1256
实际网页长度会有所不同。
这个小例子说明,程序已经能够导入刚刚安装的 requests 库,并使用它发送 HTTP 请求。如果网络不可用或请求超时,也可能产生异常,因此输出结果并不保证每次都相同。
五、第四步:保存依赖,方便以后恢复
一个项目开发到一半,最怕换电脑或者重新安装环境后,不知道需要哪些库。
解决办法是将依赖列表保存到 requirements.txt 文件中。
在虚拟环境激活的情况下,执行:
python -m pip freeze > requirements.txt
这个文件会记录当前环境中已安装的 Python 包及其版本,便于以后重建环境。
例如,文件中可能出现:
requests==2.32.0
上面的版本号只是格式示例,并不代表当前安装的一定是这个版本。
以后在新的环境中,可以运行:
python -m pip install -r requirements.txt
这样就能根据文件中的版本记录安装依赖。
需要注意,pip freeze 会记录环境中符合条件的已安装包。如果项目依赖很多,最好保持每个项目的虚拟环境干净,避免把无关的实验性依赖也记录进去。
六、最后一步:退出与清理环境
完成工作后,可以输入:
deactivate
这会退出当前激活的虚拟环境,但不会删除环境文件。
如果某个练习项目不再需要,也可以删除整个 .venv 目录,然后根据项目的依赖清单重新创建。
注意: 不要把 .venv 直接复制到另一台电脑上使用。虚拟环境可能包含与操作系统、Python 安装路径相关的内容,通常应当在新位置重新创建。
另外,使用 Git 管理项目时,通常应该将 .venv/ 添加到 .gitignore,而不是把整个环境提交到代码仓库。
总结
虚拟环境是 Python 入门阶段非常值得养成的习惯。记住创建、激活、安装依赖和保存依赖清单这几个步骤,就能让不同项目各自管理所需的库,减少版本冲突和环境混乱。
从今天开始,每个 Python 项目都建立一个独立的 .venv,让开发环境保持整洁,也让以后迁移和维护项目更加轻松。
- 点赞
- 收藏
- 关注作者
评论(0)