您如何管理自定义模块?

时间:2008-09-25 21:18:10

标签: python code-reuse

我写了大量的python脚本,我发现自己重复使用我为其他项目编写的代码。我的解决方案是确保将代码分成逻辑模块/包(这是给定的)。然后我让它们设置为setuptools并在PyPI上发布它们。这允许我的其他脚本总是拥有最新的代码,我得到一种温暖的模糊感觉因为我不重复自己,而且我的开发通常不那么复杂。我也感觉很好,可能有人在那里发现我的代码方便他们正在处理的事情,但这主要是出于自私的原因:)

对于所有的pythonistas,你如何处理这个?你使用PyPI或setuptools(easy_install)吗?或其他什么?

3 个答案:

答案 0 :(得分:1)

我一直在做同样的事情。提取常用功能,使用额外的文档和单元测试/ doctests完成代码,创建easy_install setup.py,然后在PyPi上发布。最近,我创建了一个Google Code site来管理源代码并使wiki保持最新状态。

答案 1 :(得分:1)

我们在这里谈论什么样的模块?如果您计划将项目分发给其他python开发人员,那么setuptools非常棒。但这通常不是向最终用户分发应用程序的好方法。在后一种情况下,您最好的选择是根据您要分发的平台定制包装。当然,这是一种痛苦,但它使最终用户的生活变得更加容易。

例如,在我的Debian系统中,我通常不使用easy_install,因为使用包管理器使鸡蛋运行起来有点困难。在OS X和Windows中,您可能希望分别使用py2app和py2exe打包所有内容。这使最终用户的生活更美好。毕竟,他们不应该知道或关心你的脚本是用什么语言编写的。他们只需要安装它们。

答案 2 :(得分:0)

我将它全部脱机存储在逻辑目录结构中,常用模块分组为实用程序。这意味着更容易控制我发布和管理的版本。我还自动化构建过程以解释逻辑目录结构。