6

我正在开发一个在 setup.py中使用namespace_packages和类似的 Python 包:find_packages()

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/目录下大多数文件的压缩包,但任何不包含.py文件的目录都被排除在外。

setup.py构建发行版中包含和排除的内容的默认规则是什么?我通过添加MANIFEST.inwith解决了我的问题

recursive-include package *

但我想了解 setuptools 和 distutils 默认在做什么。

4

1 回答 1

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

)
于 2009-05-21T18:22:38.213 回答