什么是 Python 虚拟环境
所谓 Python 虚拟环境,就是指一个个独立的 Python 运行环境,用于隔离不同项目的依赖包,避免版本冲突。通俗的说,你可以把 Python 虚拟环境看作是一个又一个的小房间,在这个小房间中做出的任何行为,都不会影响到其他房间。
这三个房间里有什么东西呢?主要包含三个部分:
- Python 解释器,用于运行代码
- 一个激活脚本,相当于这个房间的钥匙,只有运行了激活脚本,才能激活虚拟环境
- 一个工具箱,也就是第三方包。在这个环境下,安装或者删除第三方包对其他环境都不会有影响
以 venv
虚拟环境为例,当我们使用 venv
创建一个虚拟环境后
# 创建名为 venv 的虚拟环境(Python 3.8+)
python -m venv venv
会在当前目录下创建一个名为 venv
的目录,目录中主要包含以下文件结构,其中 site-packages
目录主要存放第三方包,Scripts 目录下存放着 Python 解释器和激活脚本(注 Linux 或 macOS 会创建 Bin 目录,存放 Python 解释器、pip 等可执行文件)
|–Include
|–Lib
|-----------site-packages 存储第三方包
|---------------------------------pip
|---------------------------------pip-24.3.1.dist-info
|–Scripts Windows 环境下创建
|-----------python.exe Liux 环境存在 Bin 目录中
|-----------activate.bat 激活脚本
有了这样一个虚拟环境后,当我们同时负责多个项目,且不同项目中依赖的第三方包不同或第三方包的版本不同时,就可以为不同的项目分别创建虚拟环境,达到环境隔离的目的。那么该如何使用 Python 环境呢。
如何使用 Python 虚拟环境
以下将以 Python 自带的虚拟环境管理工具 venv
为例,介绍如何使用 Python 虚拟环境。后续我们也会介绍其他虚拟环境管理工具,以及它们之间的异同。
1. 创建虚拟环境
# 基本命令(会在当前目录生成 `venv` 文件夹)
python -m venv 虚拟环境目录名
# 示例:创建名为 `myenv` 的虚拟环境
python -m venv myenv
可选参数
• --system-site-packages
:允许虚拟环境访问系统全局安装的包(默认禁用)。
• --prompt "提示文本"
:自定义虚拟环境激活后的提示符名称。
python -m venv myenv --prompt "我的项目"
2. 激活虚拟环境
Windows
# CMD
虚拟环境目录名\Scripts\activate.bat
# PowerShell
虚拟环境目录名\Scripts\Activate.ps1 # 需先允许脚本执行(见下方问题解决)
Linux/macOS
source 虚拟环境目录名/bin/activate
**激活后:**命令行提示符会显示环境名称(如 (myenv)
)。
3. 使用虚拟环境
安装/管理依赖
# 查看已安装的包
pip list
# 安装包(仅影响当前虚拟环境)
pip install 包名
# 从 requirements.txt 安装所有依赖
pip install -r requirements.txt
# 生成当前环境的依赖列表
pip freeze > requirements.txt
运行 Python 程序
# 虚拟环境下直接使用 `python` 命令
python your_script.py
4. 退出虚拟环境
deactivate
5. 删除虚拟环境
直接删除虚拟环境目录即可:
# Windows
rmdir /s /q myenv
# Linux/macOS
rm -rf myenv
6. 最佳实践
- 每个项目独立环境:避免依赖冲突。
- 记录依赖:定期更新
requirements.txt
。 - 使用轻量工具:
• 需要更复杂功能时,可选用virtualenv
或conda
。
总结:Python 虚拟环境可以隔离不同项目的依赖包,避免版本冲突,保持全局环境干净,确保项目可移植性和一致性。熟练使用 Python 虚拟环境,是 Python 学习从入门迈向精通的必经之路。