我有一个看起来像这样的源代码树:
/app/backend/module.py
/app/cli/module.py
/app/common/module.py
现在我要构建三个包app-backend
,app-cli
和app-common
,这些包应该是可分发的并且可以单独使用。
我想将代码保存在一个存储库中,因为我希望将它们保持在一起,但无论如何还没有那么多代码。
使用setuptools执行此操作的最标准和面向未来的方法是什么(或者更适合)?我不是为Python 2.7等构建的,如果它只适用于最新的工具,我会很好。
答案 0 :(得分:1)
您可以在一个setup()
脚本
setup.py
命令
在这种情况下,您可以拥有一个/app/setup.py
脚本
from setuptools import setup, find_packages
version = '1.0.0'
setup(
name='app-backend',
version=version,
packages=find_packages(exclude=['cli', 'common']),
)
setup(
name='app-cli',
version=version,
packages=find_packages(exclude=['backend', 'common']),
)
setup(
name='app-common',
version=version,
packages=find_packages(exclude=['backend', 'cl']),
)
运行python setup.py COMMAND
将构建/安装/打包所有三个python包
答案 1 :(得分:0)
我不知道您可以在一个setup.py
中使用多个setup(...)调用。
您不能,这是无效的。请在以下位置查看文档: https://python-packaging.readthedocs.io/en/latest/minimal.html
“主设置配置文件setup.py应该包含对setuptools.setup()的单个调用”
虽然setuptools最初没有抱怨,但尝试上载或安装软件包时开始出现问题;一个包的元数据泄漏到后面的包中。