簡體   English   中英

如何從單個setup.py構建多個wheel文件?

[英]How do I build multiple wheel files from a single setup.py?

在我的項目中,我有一個setup.py文件,它使用以下命名空間模式構建多個模塊:

from setuptools import setup

setup(name="testmoduleserver",
      packages=["testmodule.server","testmodule.shared"],
      namespace_packages=["testmodule"])

setup(name="testmoduleclient",
      packages=["testmodule.client","testmodule.shared"],
      namespace_packages=["testmodule"])

我正在嘗試為兩個包構建wheel文件。 但是,當我這樣做時:

python -m pip wheel .

它只為其中一個定義構建包。

為什么只構建一個包?

即使您想在一個代碼庫中創建多個軟件包,也無法在setup.py多次調用setuptools.setup()

相反,你需要將所有內容分成單獨的命名空間包 ,每個包含一個setup.py (它們都可以駐留在一個Git存儲庫中!):

testmodule/
    testmodule-client/
        setup.py
        testmodule/
            client/
                __init__.py
    testmodule-server/
        setup.py
        testmodule/
            server/
                __init__.py
    testmodule-shared/
        setup.py
        testmodule/
            shared/
                __init__.py

每個setup.py包含一些內容

from setuptools import setup

setup(
    name='testmodule-client',
    packages=['testmodule.client'],
    install_requires=['testmodule-shared'],
    ...
)

from setuptools import setup

setup(
    name='testmodule-server',
    packages=['testmodule.server'],
    install_requires=['testmodule-shared'],
    ...
)

from setuptools import setup

setup(
    name='testmodule-shared',
    packages=['testmodule.shared'],
    ...
)

要建立所有三個輪子,然后運行

pip wheel testmodule-client
pip wheel testmodule-server
pip wheel testmodule-shared

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM