Python setup.py-如何包含共享库
python打包(但不是python)的新手,所以如果到处都是问题,请原谅 正在尝试打包一个python模块(project-a),该模块使用另一个目录(lib)中的一组常用脚本 在如何在最终的包工件中包含这个lib目录上遇到了麻烦 下面显示setup.py、工作目录结构以及我如何计划最终的软件包安装结构 还有几个问题-Python setup.py-如何包含共享库,python,python-3.x,setuptools,python-packaging,boilerplate,Python,Python 3.x,Setuptools,Python Packaging,Boilerplate,python打包(但不是python)的新手,所以如果到处都是问题,请原谅 正在尝试打包一个python模块(project-a),该模块使用另一个目录(lib)中的一组常用脚本 在如何在最终的包工件中包含这个lib目录上遇到了麻烦 下面显示setup.py、工作目录结构以及我如何计划最终的软件包安装结构 还有几个问题- /usr/lib/python3.4/site-packages/project_A | |____project_A/ | | | |____project_A.py | |
/usr/lib/python3.4/site-packages/project_A
|
|____project_A/
| |
| |____project_A.py
|
|____lib
| |
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
.
|____setup.py
|
|____MANIFEST.in
|
|____README.md
|
|____project_A/
| |
| |____project_A.py
|
|____project_B/
| |
| |____project_B.py
|
|____conf/
| |
| |____project_A.conf
| |____project_B.conf
|
|____lib
| |
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
|
|
|____images/
| |____hello.gif
|
|____tests
| |
| |____project_A
| | |____test_B_example.py
|
| |____project_B
| | |____test_A_example.py
- lib的相对位置在我的工作目录和安装的软件包之间发生变化。在这两种情况下,有没有一种方法可以在不更改代码的情况下导入
- 这个结构更好吗?或者我应该将与project_A相关的所有内容移动到自己的目录下,这样每个项目都有自己的setup.py、MANIFEST、conf目录等。。(lib的位置将保持不变,不确定每个包是否应该有自己的tests目录)
- release=subprocess.check\u如果有人在git repo之外运行此操作,则输出失败。在这种情况下,有没有办法添加默认值
- 我遇到的一个例子是lib搬到了
。我喜欢这种方法。你知道如何在setup.py中实现这一点吗/usr/lib/python3.4/site packages/project\u A/\u lib
/usr/lib/python3.4/site-packages/project_A
|
|____project_A/
| |
| |____project_A.py
|
|____lib
| |
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
.
|____setup.py
|
|____MANIFEST.in
|
|____README.md
|
|____project_A/
| |
| |____project_A.py
|
|____project_B/
| |
| |____project_B.py
|
|____conf/
| |
| |____project_A.conf
| |____project_B.conf
|
|____lib
| |
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
|
|
|____images/
| |____hello.gif
|
|____tests
| |
| |____project_A
| | |____test_B_example.py
|
| |____project_B
| | |____test_A_example.py
Python工作区目录-
/usr/lib/python3.4/site-packages/project_A
|
|____project_A/
| |
| |____project_A.py
|
|____lib
| |
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
.
|____setup.py
|
|____MANIFEST.in
|
|____README.md
|
|____project_A/
| |
| |____project_A.py
|
|____project_B/
| |
| |____project_B.py
|
|____conf/
| |
| |____project_A.conf
| |____project_B.conf
|
|____lib
| |
| |______init__.py
| |____parseArguments.py
| |____setupLogger.py
| |____cleanup.py
|
|
|____images/
| |____hello.gif
|
|____tests
| |
| |____project_A
| | |____test_B_example.py
|
| |____project_B
| | |____test_A_example.py
谢谢你发布这个问题。我们面临着类似的问题。我们希望在不创建包的情况下共享一个公共库。在maven中,我们可以创建一个uber jar,一切都将由它来处理。它将从maven子包中打包公共代码,我们不必担心。但不知道如何在Python中实现同样的功能。此外,我们使用的是无服务器。