Gre*_*ler 8 python pip python-wheel python-3.6
在我的项目中,我有一个 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"])
Run Code Online (Sandbox Code Playgroud)
我正在尝试为这两个包构建轮文件。但是,当我这样做时:
python -m pip wheel .
Run Code Online (Sandbox Code Playgroud)
它只为定义之一构建包。
为什么只构建一个包?
Nil*_*ner 10
即使您想从一个代码库中创建多个包,您也不能setuptools.setup()
在您的 中多次调用setup.py
。
相反,您需要将所有内容分离到单独的命名空间包中,并且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
Run Code Online (Sandbox Code Playgroud)
每个都setup.py
包含一些类似的东西
from setuptools import setup
setup(
name='testmodule-client',
packages=['testmodule.client'],
install_requires=['testmodule-shared'],
...
)
Run Code Online (Sandbox Code Playgroud)
和
from setuptools import setup
setup(
name='testmodule-server',
packages=['testmodule.server'],
install_requires=['testmodule-shared'],
...
)
Run Code Online (Sandbox Code Playgroud)
和
from setuptools import setup
setup(
name='testmodule-shared',
packages=['testmodule.shared'],
...
)
Run Code Online (Sandbox Code Playgroud)
要构建所有三个轮子,然后运行
pip wheel testmodule-client
pip wheel testmodule-server
pip wheel testmodule-shared
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3560 次 |
最近记录: |