有很多关于这个问题不同方面的帖子,但我没有看到一篇能将它们全部整合起来的文章。
首先是一个主观的声明:当我们离开解释器并开始处理部署问题时,与Python语言一起工作时所体验到的简单性似乎破碎了。如何在同一台计算机上拥有多个Python版本?包应该安装在哪里?Disutils vs. setuptools vs. pip等等。当涉及到部署时,好像Python之禅被滥用得相当严重。我感到Windows上“DLL hell”经历的阴森回声。
专家们是否就这些问题达成了某种最佳实践的共识?
您在同一台计算机上运行多个Python版本吗?您如何确保它们可以共存,而新版本不会破坏依赖早期版本的其他进程的假设(例如操作系统供应商提供的脚本)?这是安全的吗?virtualenv是否足够?
对于Python环境的不同组件(包括第三方包),哪些位置是最佳选择放置在本地文件系统上?许多不同版本的Unixy和Windows操作系统的位置是否有严格或粗略的对应关系可以依赖?
而这个泥沼最阴暗的角落——您使用哪些安装工具(setuptools、distutils、pip等)?它们是否与您的文件位置选择、Python虚拟环境、Python路径等相容?
这些听起来都是难题。我希望有经验的Python程序员已经定义了一种权威方法(或两种)来解决这些挑战。任何一个“一致”作为一个系统的方法(感觉不像是分离的、不相关的工具),都将非常有帮助。
virtualenvwrapper
的粉丝——它简化了我所问的许多问题。每个变体分发工具仍然存在一些奇怪的问题,但拥有一个可以快速切换的隔离Python环境会帮助很多。 - Chris Johnson