2010-03-31 56 views
1

我正在编写一个Python开源应用程序。我的应用程序使用一些开源的Python库。这些库反过来使用其他开源库。在项目中包含库。最佳做法

我打算在Sourceforge或Google Code上发布我的代码,但是是否需要包含其他库的来源?这是一个很好的做法吗? ...或者我应该简单地将这些信息写入一个README文件,通知使用其他所需的库。

我已将所有这些库放入我的源代码目录中的libs子文件夹中。当我检查我的代码到SVN中时,是否应该使用名为svn:externals的链接到其他源?

有没有办法将我的库动态更新到最新版本,或者这是我发布新版本时必须手动执行的操作。

如果我的问题听起来含糊不清,但我在这件事上迷失了方向,我不知道谷歌应该怎么做。

谢谢大家。

回答

3

使用点需求文本文件。

仅举包[和可选版本]

要求用户自述执行下面的命令。 (如果您提供的安装脚本,那么你应该在调用此;在这种情况下,你也应该使用Virtualenv

pip install -r requirements.txt 

,所有你的要求包括图书馆将被安装在那样的环境。

您还可以在pip要求中包含svn路径,git路径,mercurial路径或bzr路径。

参考文献:http://pip.openplans.org/requirement-format.html

如果所有的库可从SVN,那么你所有套餐用户从SVN安装的话,你也可以使用SVN的外部;但点子更清洁。

1

通常情况下,您只需将库包含在最终发布的版本中,但不一定将它们包含在源版本中。

1

我认为最常见的做法是通知您的用户您的代码在README.txt文件中使用的库和版本号。您可以为您创建一个Python Egg包,其中包含库依赖关系(如果它们也有蛋),可以在安装时使用包下载。使用setuptools包创建蟒蛇蛋。

1

一般情况下(对于Python):请勿在代码中提供您所依赖的其他库的源代码。

只需在网站上和源代码随附的说明中声明所需的依赖关系(包含最低要求的版本,安装说明等)。

3

正如其他人所说,不要包含库,请在文档中说明要求。通过这种方式,您的项目可以使用已有的库,有时由其操作系统分发提供。

不过,要记住这些外部依赖,可以在不同的版本,甚至配置存在。尽可能选择一个稳定的分支(而不是最新的开发快照)。当你真的需要库的特定快照时,将它包含在你的包中可能是一个更好的选择,然后迫使用户在他们的系统中安装非标准的东西。

相关问题