在使用 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
纯个人经验,如有帮助,请收藏点赞,如需转载,请注明出处。