我正在尝试构建一个包含一些开源第三方库的项目,但我想将我的发行版与所述库捆绑在一起——因为我希望我的用户想要在没有 Internet 连接的情况下使用我的项目。此外,如果可以的话,我想保持他们的代码 100% 不变,甚至保持他们的目录结构不变。到目前为止,我的方法是提取 tarball 并将整个文件夹放入 . MyProject/lib
,但我必须放入__init__.py
每个子目录才能在我自己的模块中引用第三方代码。
完成此任务的常见最佳实践是什么?我如何通过保留项目结构来最好地尊重应用程序的开发人员?如何使在我的代码中导入这些库不那么痛苦?
我是使用 Python 制作可分发项目的新手,所以我不知道我是否可以做一些事情__init__.py
来setup.py
避免自己打字from lib.app_name.app_name.app_module include *
等等。
对于它的价值,我将在 OS X 和 *nix 上分发它。我想避免使用另一个库(例如setuptools
)来实现这一点。(奇怪的是,它似乎已经安装在我的系统上,但我没有安装它,所以我不知道发生了什么。)
我意识到这个问题似乎与这个问题重复,但我不认为这是因为我要求“用你自己的方式分发第三方代码”的最佳实践方法。如果我问的是垃圾问题,请原谅我。