python setup.py sdist 仅包含顶层模块的 .py 源文件
我有一个setup.py文件:
from setuptools import setup
setup(
...
packages=['mypackage'],
test_suite='mypackage.tests',
...
)
python setup.py sdist
这个命令会生成一个文件,这个文件只包含了顶层的mypackage中的源代码模块,而不会包含mypackage.tests或者其他的子模块。
我哪里做错了呢?
我使用的是python 2.7。
3 个回答
3
只需要把你所有的子模块都放到包的列表里就可以了:
from setuptools import setup
setup(
...
packages=['mypackage', 'mypackage.tests', 'mypackage.submodules'],
...
)
3
对于那些使用纯 distutils 而不是 setuptools 的人来说,你需要在 packages 参数中传入所有的包和子包的列表(但不需要列出所有的子模块,因为它们会自动被识别)。
32
from setuptools import setup, find_packages
setup(
# ...
packages=find_packages(),
)
这个函数会去找Python包,也就是那些包含有__init__.py
文件的文件夹,并把找到的包以正确的格式列出来。它会从和setup.py脚本同一个目录开始找,不过你也可以指定一个其他的起始目录。如果你想让它跳过某些东西,还可以设置排除的规则。