来自一棵源树的多个发行版

fqx*_*qxp 7 python setuptools python-3.x python-packaging

我有一个看起来像这样的源树:

\n\n
/app/backend/module.py\n/app/cli/module.py\n/app/common/module.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我想构建三个包, ,app-backendapp-cli并且app-common其中应该是可分发的并且可以单独使用。\n我\xe2\x80\x99d 喜欢将代码保存在一个存储库中,因为我\xe2\x80\x99d 喜欢将所有内容放在一起,而且\xe2\x80\x99d 还没有那么多代码。

\n\n

使用 setuptools 执行此操作的最标准且面向未来的方法是什么(或者是否有更合适的方法)?我不是为 Python 2.7 等构建的,如果它只适用于最新的工具,我会很好。

\n

Bre*_*bel -2

您可以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']),
)
Run Code Online (Sandbox Code Playgroud)

运行python setup.py COMMAND将构建/安装/打包所有三个 python 包