![](/img/trans.png)
[英]How do I build a py2 wheel package, when setup.py runs with a Python version 3 interpreter?
[英]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.