简介
Python 虚拟环境是管理 Python 项目依赖项的重要工具。它们创建了隔离的空间,你可以在其中安装软件包,而不会影响系统的全局 Python 安装。这种隔离有助于防止不同项目之间可能因需要同一软件包的不同版本而产生冲突。
在这个实验中,你将学习如何创建、激活和停用 Python 虚拟环境。这些技能是 Python 开发者的基础技能,将帮助你为项目维护干净、有序且可重现的开发环境。
理解和创建 Python 虚拟环境
在创建 Python 虚拟环境之前,让我们先了解一下它是什么以及为什么它很重要。
什么是 Python 虚拟环境?
Python 虚拟环境是一个隔离的 Python 解释器安装。当你激活一个虚拟环境时,你安装的任何软件包都会被放置在该环境的私有目录中,而不是系统全局的 Python 安装目录中。这种隔离带来了以下几个好处:
- 你可以为不同的项目使用同一软件包的不同版本
- 你可以轻松地与他人共享所需软件包的确切列表
- 你可以保持系统 Python 的干净和有序
创建你的第一个虚拟环境
Python 3.3 及更高版本包含 venv 模块,这是创建虚拟环境的推荐工具。让我们来创建第一个虚拟环境:
首先,确保你位于项目目录中:
mkdir -p ~/project/python_env_demo cd ~/project/python_env_demo通过运行以下命令创建一个名为
myenv的新虚拟环境:sudo apt-get update sudo apt-get install python3.10-venv -y python3 -m venv myenv让我们查看一下创建了哪些内容:
ls -la myenv你应该会看到类似于以下的输出:
total 20 drwxrwxr-x 5 labex labex 4096 Sep 14 10:00 . drwxrwxr-x 3 labex labex 4096 Sep 14 10:00 .. drwxrwxr-x 2 labex labex 4096 Sep 14 10:00 bin drwxrwxr-x 2 labex labex 4096 Sep 14 10:00 include drwxrwxr-x 3 labex labex 4096 Sep 14 10:00 lib -rw-rw-r-- 1 labex labex 70 Sep 14 10:00 pyvenv.cfg
venv 命令创建了一个名为 myenv 的目录,其中包含几个子目录。最重要的子目录有:
bin:包含 Python 解释器、pip 和激活脚本lib:包含此环境中安装的软件包pyvenv.cfg:虚拟环境的配置文件
现在,你已经成功创建了一个 Python 虚拟环境,随时可以激活并使用它。
激活 Python 虚拟环境
现在你已经创建了一个虚拟环境,在使用它之前需要先激活它。激活操作会修改你 shell 的环境变量,使你使用虚拟环境中的 Python 解释器和软件包,而非系统全局的 Python 安装。
如何激活虚拟环境
确保你位于项目目录中:
cd ~/project/python_env_demo通过运行以下命令激活虚拟环境:
source myenv/bin/activate注意你的命令提示符已经改变。现在,提示符开头的括号中会显示虚拟环境的名称:
(myenv) labex:python_env_demo/ $这个视觉提示能帮助你记住自己正在虚拟环境中工作。
验证激活状态
为了确认你的虚拟环境已激活且正常工作,你可以进行以下检查:
查看正在使用的 Python 解释器:
which python你应该会看到类似以下的输出:
/home/labex/project/python_env_demo/myenv/bin/python这表明
python命令现在指向的是你虚拟环境中的 Python 解释器,而非系统全局的解释器。查看正在使用的 pip(Python 软件包安装器):
which pip你应该会看到类似以下的输出:
/home/labex/project/python_env_demo/myenv/bin/pip这确认了你将把软件包安装到虚拟环境中,而不是系统的 Python 环境中。
检查 Python 版本:
python --version输出将显示你虚拟环境中正在使用的 Python 版本。
现在你已经成功激活了 Python 虚拟环境。你运行的任何 Python 命令以及安装的任何软件包都将使用这个隔离的环境,而不是系统的 Python 安装。
在虚拟环境中安装软件包
虚拟环境的主要优点之一是能够独立于系统全局的 Python 安装来安装和管理 Python 软件包。让我们来探讨如何在已激活的虚拟环境中安装软件包。
使用 pip 安装软件包
确保你的虚拟环境仍然处于激活状态。你的命令提示符开头应该显示
(myenv)。如果未激活,请使用以下命令激活它:source myenv/bin/activate让我们安装一个名为
requests的简单软件包,它通常用于发起 HTTP 请求:pip install requests你会看到显示下载和安装过程的输出。
通过查看已安装软件包的列表来验证该软件包是否已安装:
pip list你应该会在列表中看到
requests及其依赖项:Package Version ------------------ --------- certifi 2025.1.31 charset-normalizer 3.4.1 idna 3.10 pip 22.0.2 requests 2.32.3 setuptools 59.6.0 urllib3 2.3.0
使用已安装的软件包
让我们创建一个简单的 Python 脚本来测试 requests 软件包:
打开编辑器,在
~/project/python_env_demo目录下创建一个名为test_requests.py的新文件:import requests response = requests.get('https://httpbin.org/get') print(f"Status Code: {response.status_code}") print(f"Content Type: {response.headers['content-type']}") print("\nResponse Body Preview:") print(response.text[:300] + "...")保存文件并运行它:
python test_requests.py
你应该会看到类似于以下的输出:
Status Code: 200 Content Type: application/json Response Body Preview: { "args": {}, "headers": { "Accept": "_/_", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.32.3", "X-Amzn-Trace-Id": "Root=1-67ca4e9a-3b65928a0af016e74bc867b7" }, "origin": "47.251.8.222", "url": "https://httpbin.org/g...
这表明 requests 软件包已成功安装到你的虚拟环境中,并且可以正常工作。
停用 Python 虚拟环境
当你完成在虚拟环境中的工作后,可能希望回到系统的全局 Python 环境。这个过程称为停用。
如何停用虚拟环境
确保你的虚拟环境当前处于激活状态。你的命令提示符开头应该显示
(myenv)。要停用虚拟环境,只需运行:
deactivate注意你的命令提示符已恢复正常。
(myenv)前缀已消失:labex:python_env_demo/ $
验证停用状态
为了确认你的虚拟环境已停用,并且你已回到使用系统 Python 的状态,请运行以下检查:
检查正在使用的 Python 解释器:
which python3你应该会看到类似以下的输出:
/usr/bin/python3这表明
python3命令现在指向系统全局的 Python 解释器。尝试运行我们之前创建的脚本:
python3 test_requests.py根据
requests软件包是否安装在你的系统 Python 中,你可能会看到一个错误:Traceback (most recent call last): File "/home/labex/project/python_env_demo/test_requests.py", line 1, in <module> import requests ModuleNotFoundError: No module named 'requests'这个错误的出现是因为
requests软件包安装在你的虚拟环境中,而不是系统 Python 中。这正是虚拟环境的主要优点之一——为不同项目隔离软件包。
重新激活虚拟环境
如果你需要再次处理你的项目,可以轻松地重新激活虚拟环境:
source myenv/bin/activate
你的命令提示符将再次显示 (myenv),表明虚拟环境已激活。
常见虚拟环境命令总结
以下是我们介绍过的命令的快速参考:
| 命令 | 描述 |
|---|---|
python3 -m venv myenv |
创建一个名为 "myenv" 的新虚拟环境 |
source myenv/bin/activate |
激活虚拟环境 |
pip install package_name |
在活动的虚拟环境中安装一个软件包 |
pip list |
列出活动虚拟环境中已安装的软件包 |
deactivate |
停用当前的虚拟环境 |
这些命令构成了使用 Python 虚拟环境的基础,使你能够为项目创建、使用和管理隔离的 Python 环境。
总结
在本次实验中,你已经学习了使用 Python 虚拟环境的必备技能:
- 理解虚拟环境的概念和优点
- 使用
venv模块创建新的虚拟环境 - 激活虚拟环境以隔离你的 Python 工作
- 使用 pip 在虚拟环境中安装软件包
- 使用简单的 Python 脚本测试已安装的软件包
- 在完成工作后停用虚拟环境
这些技能构成了良好 Python 开发实践的基础。通过使用虚拟环境,你可以:
- 使项目的依赖项相互隔离
- 避免不同版本软件包之间的冲突
- 让你的项目更具可重复性,且更易于共享
- 维护一个干净、有条理的 Python 开发环境
虚拟环境是从初学者到专家的各级 Python 开发者的必备工具。在你继续 Python 学习之旅时,使用虚拟环境将成为你开发工作流程中的自然组成部分。



