在使用 PyCharm 或其他 Python 开发环境时,选择合适的 Python 解释器对于项目的开发非常重要。关系到包的管理,项目文件的大小。
本文分析几种常见 Python 环境管理工具(
venv
、
conda
、
pipenv
、
poetry env
)的优缺点。
经过对比尝试后,个人比较推荐用
conda
环境作为学习研究,他自带数据分析相关的包,但过于臃肿,建议用
venv
作为实际项目搭建环境,更加简洁直观,易于管理与发布。
如何设置 python 解释器
设置-python 解释器-选择核实的解释器。
image.png
各环境优缺点分析
1. venv (Virtual Environment)
优点:
- 轻量级:
venv
是 Python 自带的一个模块,不需要额外安装。 - 简单易用:创建和管理虚拟环境非常直观。
- 广泛支持:几乎所有现代的 Python 版本都支持
venv
。
缺点:
- 功能有限:相比其他工具,
venv
的功能较为基础,缺少一些高级特性。 - 依赖管理:依赖项管理主要通过
requirements.txt
文件,不如pipenv
和 poetry` 那样灵活和强大。
2. conda
优点:
- 跨平台:支持 Windows、macOS 和 Linux。
- 包管理:不仅管理 Python 包,还管理其他语言的包。
- 环境隔离:强大的环境管理功能,可以轻松创建和切换多个环境。
- 科学计算:特别适合科学计算和数据科学项目,因为许多科学计算库都有预编译的包。
缺点:
- 体积较大:安装
conda
本身需要较大的磁盘空间。 - 速度较慢:相比于
pip
,conda
的安装速度可能较慢。 - 社区生态:虽然
conda
的生态系统在不断壮大,但某些最新的 Python 包可能没有及时更新到conda-forge
仓库中。
3. pipenv
优点:
- 依赖锁定:通过
Pipfile
和Pipfile.lock
文件管理依赖项,确保不同环境中依赖项的一致性。 - 自动管理:自动管理虚拟环境,简化了环境的创建和激活过程。
- 集成测试:支持集成测试环境的管理。
缺点:
- 性能问题:在某些情况下,
pipenv
的依赖解析速度可能较慢。 - 兼容性:某些复杂的依赖关系可能导致解析失败。
4. poetry env (Poetry)
优点:
- 依赖管理:强大的依赖管理功能,支持依赖锁定和版本管理。
- 构建工具:不仅仅是环境管理工具,还可以作为构建工具,支持打包和发布 Python 包。
- 自动化:支持自动化脚本,可以方便地集成到 CI/CD 流程中。
- 灵活性:配置文件
pyproject.toml
非常灵活,可以管理项目的各个方面。 缺点: - 学习曲线:相对于
venv
和pipenv
,poetry
的学习曲线可能稍陡。 - 社区支持:尽管
poetry
的社区正在快速增长,但在某些方面可能还不如conda
和pip
成熟。
总结
- venv:适合简单的项目和快速原型开发,因为它轻量且易于使用。
- conda:适合科学计算和数据科学项目,特别是那些需要跨语言包管理的项目。
- pipenv:适合需要严格依赖管理和多环境支持的项目。
- poetry:适合大型项目和需要高级依赖管理和构建工具的项目。
Venv 环境非常好用,原因是他将项目所需要的包就放在编辑文件下,且没有其他无关的包,这样就非常好控制。项目也不会特别庞大。
如何在 cmd 中激活. venv
- 指向 到所在目录
切换到同一驱动器上的另一个目录:
cd D:\BaiduSyncdisk\pythonprograms\data_analytics
切换到不同驱动器上的目录
D:
cd \BaiduSyncdisk\pythonprograms\data_analytics
激活 venv 环境
.\.venv\Scripts\Activate
项目搭建好后,不用启动 pycharm 等 ide,激活 venv 环境,就可以在命令提示符中运行了。
image.png
BY
纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。
微信公众号:环境猫 er
CSDN : 细节处有神明
个人博客: https://maoyu92.github.io/
版权归原作者 细节处有神明 所有, 如有侵权,请联系我们删除。