Python 来自一个源树的多个分布
我有一个源代码树,看起来像这样:Python 来自一个源树的多个分布,python,python-3.x,setuptools,python-packaging,Python,Python 3.x,Setuptools,Python Packaging,我有一个源代码树,看起来像这样: /app/backend/module.py /app/cli/module.py /app/common/module.py 现在我想构建三个包,app-backend、app-cli和app-common,它们应该是可分发的,并且可以单独使用。 我希望将代码保存在一个存储库中,因为我希望将所有东西都保存在一起,而且它还没有那么多代码 使用setuptools实现这一点最标准、最经得起未来考验的方法是什么(或者是否有更好的方法)?我不是为Python2.7或
/app/backend/module.py
/app/cli/module.py
/app/common/module.py
现在我想构建三个包,app-backend
、app-cli
和app-common
,它们应该是可分发的,并且可以单独使用。
我希望将代码保存在一个存储库中,因为我希望将所有东西都保存在一起,而且它还没有那么多代码
使用setuptools实现这一点最标准、最经得起未来考验的方法是什么(或者是否有更好的方法)?我不是为Python2.7或诸如此类的东西而构建的,如果它只与最新的工具一起工作,我会很好。在一个
setup.py
脚本中可以有多个setup()
命令
在这种情况下,您可以有一个/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命令
将构建/安装/打包所有三个python包
我不知道您可以在一个setup.py中使用多个setup(…)调用 不能,这是无效的。请参阅以下位置的文档: 主安装配置文件setup.py应包含对setuptools.setup()的单个调用
虽然setuptools最初并不抱怨,但当您尝试上载或安装软件包时,问题开始出现;一个包的元数据泄漏到后面的包中。我不知道您可以在一个
setup.py
中使用多个setup(…)
调用-您可以提供到文档的链接吗?我根据您的答案实现了一个解决方案,其中包含多个可单独使用的setup.py
文件,以及一个位于base dir中的setup.py
,通过run\u path
模块使用其他文件。