将第三方库与python项目捆绑在一起的最佳实践是什么? (对于没有Internet的用户)

时间:2013-06-04 17:25:06

标签: python dependencies project static-libraries directory-structure

我正在尝试构建一个包含一些开源第三方库的项目,但我想将我的发行版与所述库捆绑在一起 - 因为我希望我的用户想要在没有Internet连接的情况下使用我的项目。另外,我想保持他们的代码100%不受影响,如果可以的话,甚至不要改变他们的目录结构。到目前为止,我的方法是提取tarball并将整个文件夹放在MyProject/lib中,但我必须在每个子目录中放置__init__.py才能引用第三方代码我自己的模块。

完成此任务的常见最佳做法是什么?如何通过保留项目结构来最好地尊重应用程序的开发人员?如何在我的代码中导入这些库减少痛苦?

我是用Python制作可分发项目的新手,所以我不知道我可以在__init__.pysetup.py中做些什么来防止我自己输入{{1}和什么。

对于它的价值,我将在OS X和可能的* nix上发布它。我想避免使用其他库(例如from lib.app_name.app_name.app_module include *)来完成此任务。 (奇怪的是,它似乎已经安装在我的系统上,但我没有安装它,所以我不知道发生了什么。)

我意识到这个问题似乎是this one的重复,但我不认为这是因为我要求“分发第三方代码 - 的最佳实践 - 用自己的方法。如果我问垃圾问题,请原谅我。

2 个答案:

答案 0 :(得分:1)

buildout是构建和分发Python软件的好方法。

答案 1 :(得分:0)

你可以看看virtualenv的内部工作方式,以获得一些灵感来解决这个问题。也许你可以从那里重新使用代码。