python - Python 部署的最佳实践——多个版本、标准安装位置、打包工具等

标签 python virtualenv distutils pip multiple-versions

关于这个问题的不同方面的许多帖子,但我还没有看到一个帖子将所有这些结合在一起。

首先是一个主观的陈述:当我们离开解释器并开始处理部署问题时,我们在使用 Python 语言时所体验到的简单性似乎被粉碎了。如何最好地在同一台机器上拥有多个版本的 Python?软件包应该安装在哪里? Disutils vs. setuptools vs. pip 等。在部署方面,Python 的 Zen 似乎被严重滥用了。我在 Windows 上感受到了“DLL hell ”体验的怪异回声。

Do the experts agree on some degree of best practice on these questions?

您是否在同一台机器上运行多个版本的 Python?您如何保持对它们可以共存的信心——并且新版本不会破坏依赖于早期版本的其他进程的假设(例如,操作系统供应商提供的脚本)?这安全吗? virtualenv 够用吗?

本地文件系统上 Python 环境的不同组件(包括 3rd 方包)的位置的最佳选择是什么?许多不同版本的 Unixy 和 Windows 操作系统的位置之间是否存在严格或粗略的对应关系?

还有沼泽中最阴暗的角落——你使用什么安装工具(setuptools、distutils、pip 等),它们是否适合你的选择:文件位置、Python 虚拟环境、Python 路径等。

这些听起来像是很难的问题。我希望经验丰富的 Pythonistas 可能已经为这些挑战定义了一种(或两种)规范方法。任何将“卡在一起”作为一个可以放心使用的系统的方法(感觉不像是单独的、不相关的工具)都会非常有帮助。

最佳答案

我发现 virtualenv是在同一台机器上配置和维护多个环境的唯一可靠方法。它甚至可以作为打包环境并将其安装到另一台机器上的一种方式。

对于包管理,我总是使用 pip因为它与 virtualenv 配合得非常好。它还可以轻松地从各种来源(例如 git 存储库)安装和升级软件包。

关于python - Python 部署的最佳实践——多个版本、标准安装位置、打包工具等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232061/

相关文章:

python - 如何使用 gspread lib 从 google 电子表格中删除/删除行。在 python ?

python - 通过 Chef Recipe 激活 virtualenv 并安装 python 库

c++ - 如何在 OSX 上为 Python 编译 C++ 扩展(而不是 C)?

Python,导入错误 : undefined symbol: g_utf8_skip

python - Pandas :按日期和另一个变量的中位数分组

python - 调整 BaggingClassifier 使用的分类器的参数

python - 字典每个键分为多行

python - 如何在使用 Pycharm + Docker 测试项目时在 Python 库包上进行开发?

python - 用于 Jenkins/本地构建的 PyPI 本地缓存

python - ImportError : No module named distutils