我正在开发一个在setup.py中使用namespace_packages
和find_packages()
的Python包:
from setuptools import setup, find_packages
setup(name="package",
version="1.3.3.7",
package=find_packages(),
namespace_packages=['package'], ...)
它不在源代码管理中,因为它是一组上游组件。没有清单。
当我运行python setup.py sdist
时,我得到了package/
目录下大多数文件的tarball,但是不包含任何不包含.py
文件的目录。
setup.py
包含和排除内置发行版的默认规则是什么?我通过添加MANIFEST.in
和
recursive-include package *
但我想了解默认情况下setuptools和distutils正在做什么。
答案 0 :(得分:4)
您需要添加package_data指令。例如,如果要包含带.txt或.rst扩展名的文件:
from setuptools import setup, find_packages
setup(name="package",
version="1.3.3.7",
package=find_packages(),
include_package_data=True,
namespace_packages=['package'],
package_data = {
# If any package contains *.txt or *.rst files, include them:
'': ['*.txt', '*.rst']...
)