我有机会完成模块的python管理,每次都是一个挑战:包装不是人们每天所做的事情,它成为学习的负担,也是记忆的负担,即使你实际上是这样做的,因为这通常会发生一次。
我想在这里收集有关导入,包管理和分发如何在python中运行的权威概述,以便这个问题成为所有在幕后发生的魔术的明确解释。虽然我理解问题的广泛层面,但这些事情是如此交织在一起,以至于任何有针对性的答案都无法解决主要问题:了解所有工作是什么,什么是过时的,什么是当前的,什么是同一任务的替代品,什么是怪癖。
要引用的关键字列表如下,但这只是一堆样本。还有更多,欢迎您添加其他详细信息。
链接到其他答案可能是一个好主意。正如我所说,这个问题是为了高级概述。
答案 0 :(得分:11)
答案 1 :(得分:3)
对于打包问题,这应该有助于http://guide.python-distribute.org/
对于导入,Fredrik Lundh http://effbot.org/zone/import-confusion.htm的旧文章仍然是一个非常好的起点。
答案 2 :(得分:2)
我建议Tarek Ziadek's Book on Python.这里有一章专门介绍包装和发行。
答案 3 :(得分:0)
我认为不需要探索import
(Python的命名空间和导入功能是直观的恕我直言)。
我现在只使用pip
。我没有遇到任何问题。
然而,包装和分销的主题值得探讨。我会这样说,而不是给出冗长的答案:
我通过简单地复制Pylons或许多其他开源软件包的方式来学习如何打包和分发我自己的“软件包”。然后我将这种模板与阅读文档相结合,进一步充实,并提出了一种可靠的分配方法。
当您为python(distutils和pypi)进行包管理和分发时,它实际上非常强大。我很喜欢它。
[编辑]
我还想补充一下virtualenv。用它。我为每个项目创建了一个virtualenv,我总是使用--no-site-packages
;我在virtualev中安装了特定项目所需的所有软件包(即使它们之间都是常见的,比如lxml
)。它让所有东西都隔离开来,让我更容易保持分组(而不是试图跟踪python的位置和版本!)
[/编辑]