Table of contents
Open Table of contents
目前流行的 Python 的包管理方案
- venv
- Conda
- Poetry
venv
venv 是 pip 自带的虚拟环境及包管理解决方案,开箱即用。
Test
使用 venv 通常需要
- 创建环境:
python -m venv venv
- 激活环境:
source venv/bin/activate
- 安装依赖:
pip install flask
- 锁定依赖:
pip freeze > requirements.txt
- 退出环境:
deactivate
这样看还挺好的是吧,但是其他在 macOS 和 Windows 上,激活环境的命令不一致,Windows 激活 venv 虚拟环境的命令是 .\venv\Scripts\activate
。
venv 还有一个缺点,如果我们有多个项目,那么就会存在多个由 venv
创建的虚拟环境,会大大占用磁盘空间,我的 512G MBP 可抗不住这么造啊。
venv 还有一个缺点,当使用 pip 安装包是不会自动将包写入到requirement.txt
中,这就很蛋疼了,曾经因为这个问题,一直被甲方在群里 @ 点名要依赖。
Conda
经常接触数据,模型的朋友对 Conda 一定不陌生。
使用 Conda 通常需要以下几步:
- 创建环境:
conda create --name condaenv python=3.11
- 激活环境:
conda active condaenv
- 安装依赖:
conda install flask
- 退出环境:
conda deactivate
Anaconda 中内置了一个 Python 解释器,同时还内置了许多常用的数据科学软件包或工具。但 内置的东西也太多了 8 ,其中的大部分又用不到,这无异于让我的 MBP 磁盘雪上加霜。
Poetry
终于要介绍 poetry 了。
经过前面几个工具的对比,发现他们都有一些缺点:
- 占用空间
- 操作复杂
- 不能记录依赖
- 不能锁定依赖版本
这些问题,poetry都能解决!
使用 poetry
- 创建环境:
poetry init
- 安装依赖:
poetry add flask
- 激活虚拟环境:
poetry shell
- 退出虚拟环境:
exit
最后,由 GPT 4 来个总结:
在尝试各种 Python 包管理工具后,你可能发现 venv 在磁盘空间使用和跨平台使用上不够友好,conda 内置的组件又过于庞大而并非都需要用到。好在,我们有一个更好的选择:Poetry.
Poetry 简洁而强大,它统一了创建、管理和发布 Python 包的流程。Poetry 不仅可以帮你自动创建和管理虚拟环境,还能让你无需手动编辑 requirements.txt,因为它将自动记录并锁定你的项目依赖。同时,使用 Poetry 无需担心磁盘空间,因为它的虚拟环境存储着仅与特定项目相关的 Python 版本和包,而非大量的、可能并不使用的包。此外,Poetry 也提供了友好的 CLI,使得你的开发流程更为高效且便捷。
因此,对于寻找可靠且高效的 Python 包管理工具的 Python 开发者们,我强烈推荐 Poetry。但理想的工具取决于每个人的具体需求和习惯,我这里提供的评价仅供参考。 希望你在此基础上,能找到最适合你的 Python 包管理工具,让你的编码之旅更加愉快顺滑。如果你已经准备好迎接更优雅的包管理体验,那就尝试开始使用 Poetry 吧!