我正在开发一个使用 namespace_packages
和 find_packages()
的 Python 包,就像在 setup.py 中一样:
from setuptools import setup, find_packages
setup(name="package",
version="1.3.3.7",
package=find_packages(),
namespace_packages=['package'], ...)
它不在源代码控制中,因为它是上游组件的 bundle 。没有 list 。
当我运行 python setup.py sdist
时,我得到了 package/
目录下的大部分文件的压缩包,但任何不包含 的目录.py
文件被排除在外。
setup.py
在构建的发行版中包含和排除的内容的默认规则是什么?我通过添加 MANIFEST.in
和
recursive-include package *
但我想了解 setuptools 和 distutils 默认情况下在做什么。
最佳答案
您需要添加一个 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']...
)
关于python - setuptools 如何决定为 sdist/bdist 保留哪些文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/894323/