0

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

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

我是使用 Python 制作可分发项目的新手,所以我不知道我是否可以做一些事情__init__.pysetup.py避免自己打字from lib.app_name.app_name.app_module include *等等。

对于它的价值,我将在 OS X 和 *nix 上分发它。我想避免使用另一个库(例如setuptools)来实现这一点。(奇怪的是,它似乎已经安装在我的系统上,但我没有安装它,所以我不知道发生了什么。)

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

4

2 回答 2

1

buildout是构建和分发 Python 软件的好解决方案。

于 2013-06-04T17:29:37.593 回答
0

你可以看看 virtualenv 的内部工作原理,以获得一些灵感。也许您可以从那里重用代码。

于 2013-06-04T17:31:05.567 回答