文章目录
- 虚拟环境工具对比
- 创建虚拟环境
- 激活与退出虚拟环境
- 在虚拟环境中安装包
- 查看已安装的包
- pip 常用命令
- 删除虚拟环境
- 参考资料
- 碎碎念限时返场
虚拟环境是 Python 中的一个工具,用于为每个项目创建独立的运行环境。在虚拟环境中,Python 解释器及其相关的库都被隔离开来,这样不同的项目就能拥有自己独立的依赖,而不会相互干扰。每个虚拟环境都包含了特定版本的 Python 解释器以及所需的库,可以避免因版本冲突而导致的依赖问题。
pip是 Python 的包管理工具,负责安装、升级、卸载 Python 包。虚拟环境则是一个隔离的空间,可以让你在其中使用pip安装包,而这些包只会影响当前虚拟环境,不会干扰其他环境或系统环境。因此,pip和虚拟环境结合使用,能够更好地管理项目的依赖和版本控制。
虚拟环境工具对比
- venv
python -m venv myenv source myenv/bin/activate # Linux/Mac myenv\Scripts\activate.bat # Windows优点:
操作简单
轻量级
缺点:
依赖管理全靠pip,版本冲突无力处理
创建环境速度慢(尤其大型项目)
无法管理 python 版本,环境由固定版本创建
- conda
conda create -n myenv python=3.9 conda activate myenv优点:
功能强大,跨语言依赖管理
环境隔离彻底,可管理python版本和锁定依赖
缺点:
有时存在 conda-forge 和默认频道包冲突
体积巨大,速度慢
包更新策略保守,频道(如
conda-forge)的包版本可能滞后
- uv
uv venv myenv source myenv/bin/activate uv pip install -r requirements.txt优点:
创建环境速度快
可无缝对接现有工作流
集成 pip-tools 功能,解决版本冲突问题
uv pip compile requirements.in -o requirements.txt缺点:
作为新工具,成熟度和社区规模不如 pip/conda
不支持非 python 依赖,无法处理 cuda 等底层库
对比总表
创建虚拟环境
python -m venv .venv这条命令会在当前目录下创建一个名为.venv的文件夹,里面包含独立的 Python 解释器、pip包管理器以及其他必要的文件。目录结构如下:
.venv/ ├── bin/ # (Linux/macOS) 或 Scripts/ (Windows) ├── lib/ ├── pyvenv.cfg └── ...激活与退出虚拟环境
- 激活虚拟环境
.venv\Scripts\activate- 退出虚拟环境
deactivate在虚拟环境中安装包
虚拟环境激活后,可以通过 pip 安装所需的 Python 包,所有包将被安装到当前虚拟环境中,而不会影响全局 Python 环境。
- 安装包:
可以使用 pip install 命令安装单个包。例如,要安装 requests 包:
pip install requests- 安装指定版本的包:
有时候可能需要安装某个包的特定版本,可以通过 == 来指定版本号。例如,安装 requests 的 2.25.1 版本:
pip install requests==2.25.1- 安装多个包:
如果需要同时安装多个包,可以将包名空格分隔,例如:
pip install requests numpy pandas- 从 requirements.txt 文件安装:
如果已经有一个列出项目依赖的 requirements.txt 文件,可以一次性安装文件中列出的所有包及其版本。例如:
pip install -r requirements.txt查看已安装的包
查看虚拟环境中已安装的包及其版本:
pip listpip 常用命令
pip 提供了一些常用命令来管理包的安装、卸载和查询。以下是最常用的几个命令及其功能:
| 命令 | 作用 |
|---|---|
pip install <package> | 安装指定的包 |
pip install <package>==<version> | 安装指定版本的包 |
pip uninstall <package> | 卸载指定的包 |
pip freeze | 查看当前虚拟环境中安装的包及版本 |
pip freeze > requirements.txt(不存在就创建,存在就覆盖。如果只想追加不覆盖就用 >>) | 将当前环境的包及版本保存到requirements.txt文件 |
pip install -r requirements.txt | 根据requirements.txt安装包 |
pip show <package> | 查看某个包的详细信息 |
pip list | 查看已安装的所有包 |
删除虚拟环境
deactivate rmdir /s /q .venv参考资料
https://liaoxuefeng.com/books/python/introduction/index.html
【Python】Python 虚拟环境与依赖管理全指南
Python 虚拟环境工具对比:venv、conda、和 uv,我为什么最终选择了 uv?
碎碎念限时返场
学都学了记都记了那就发了吧()