setuptools如何决定为sdist / bdist保留哪些文件?

时间:2009-05-21 18:19:09

标签: python setuptools distutils

我正在开发一个在setup.py中使用namespace_packagesfind_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正在做什么。

1 个答案:

答案 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']...

)