python——虚拟环境
在 Python 中,虚拟环境(Virtual Environment) 是用于隔离不同项目的依赖和运行环境的工具。通过创建虚拟环境,可以确保不同项目之间的依赖互不干扰。例如,项目 A 可能使用某个库的版本 1.0,而项目 B 可能使用同一个库的版本 2.0,通过虚拟环境可以避免版本冲突。
虚拟环境的原理
虚拟环境通过创建一个独立的 Python 解释器和包安装目录,使项目在该环境中运行时不会受到全局 Python 环境的影响。虚拟环境中的所有 Python 库、包、解释器都是在隔离的空间中,不影响系统的其他 Python 环境。
如何创建和管理虚拟环境
1. 使用 venv
模块
Python 从 3.3 版本开始内置了 venv
模块,用于创建虚拟环境。
创建虚拟环境步骤:
-
创建虚拟环境:
在终端或命令行中进入你想创建虚拟环境的目录,然后执行以下命令:python -m venv myenv
python -m venv
是调用venv
模块。myenv
是虚拟环境的名称,你可以根据需要命名。-
激活虚拟环境:
-
在 Windows 系统上,运行:
myenv\Scripts\activate
-
在 Linux/Mac 系统上,运行:
source myenv/bin/activate
-
在虚拟环境中安装库:
激活虚拟环境后,你可以使用
pip
安装项目依赖的库。例如,安装requests
库:pip install requests
安装的库会仅存储在
myenv
虚拟环境中,不会影响系统全局环境。 -
查看已安装的包:
使用
pip list
查看当前虚拟环境中已安装的包:pip list
-
将当前安装包及其版本保存到
requirements.txt
:在激活的虚拟环境中,使用
pip freeze
命令生成项目的依赖文件requirements.txt
:pip freeze > requirements.txt
该文件会包含当前虚拟环境中所有已安装的库及其版本号,例如:
Flask==2.0.1 requests==2.26.0
-
使用
requirements.txt
安装依赖无论是在 Windows 还是 Linux/MacOS 上,你都可以使用相同的命令从
requirements.txt
文件中安装所有依赖:pip install -r requirements.txt
这会根据文件中列出的依赖和版本号进行批量安装。
-
退出虚拟环境:
当你完成工作后,使用以下命令退出虚拟环境:
deactivate
退出后,虚拟环境会被“取消激活”,终端会返回到系统全局的 Python 解释器中。
这会创建一个名为 myenv
的文件夹,里面包含虚拟环境的 Python 解释器和包管理工具 pip
。
激活虚拟环境后,命令行的提示符会变化,显示你所处的虚拟环境名称,比如 (myenv)
。
完整的流程对比(Windows vs Linux/MacOS)
步骤 | Windows | Linux/MacOS |
---|---|---|
创建虚拟环境 | python -m venv myenv |
python -m venv myenv |
激活虚拟环境 | myenv\Scripts\activate |
source myenv/bin/activate |
安装依赖 | pip install flask requests |
pip install flask requests |
保存依赖 | pip freeze > requirements.txt |
pip freeze > requirements.txt |
安装依赖 | pip install -r requirements.txt |
pip install -r requirements.txt |
退出虚拟环境 | deactivate |
deactivate |
2. 使用 virtualenv
工具
virtualenv
是一个第三方工具,适用于 Python 2 和 Python 3,功能类似 venv
,但具有更广泛的兼容性。
安装 virtualenv
:
如果你想使用 virtualenv
,可以先安装它:
pip install virtualenv
使用 virtualenv
创建虚拟环境:
virtualenv myenv
其他使用方式(激活、安装包、退出等)与 venv
基本相同。
3. 管理虚拟环境中的依赖
使用 requirements.txt
:
在项目中记录所有依赖的库及其版本,便于其他开发者或在不同环境中复现安装。
-
生成
requirements.txt
文件:pip freeze > requirements.txt
这会生成一个
requirements.txt
文件,列出当前虚拟环境中所有已安装的库及其版本号。 -
通过
requirements.txt
安装依赖:当你分享项目给他人时,其他人可以通过
requirements.txt
来安装项目的所有依赖:pip install -r requirements.txt
场景示例
requirements.txt
文件,让团队中的其他人快速配置相同的开发环境。结论
虚拟环境是一种有效的工具,用于隔离项目的依赖,避免版本冲突。使用 venv
或 virtualenv
可以轻松创建和管理虚拟环境,确保项目的独立性和可移植性。
作者:pumpkin84514