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

标签 python setuptools distutils

我正在开发一个使用 namespace_packagesfind_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/

相关文章:

python - pip:有什么解决方法可以避免 --allow-external?

python - 安装工具:在 package_data 中包含子目录

python - 为不同平台构建 python wheels

python - 包导入创建一个模块,子模块仍然可导入

python - 如何将 Django View 与 Angular js 前端连接?

python - Python中随机数最终数字的分布

python - 如何在 Python 脚本中执行 UNIX 命令

python - 使用 python 和 eyed3 创建新的 ID3 标签

python - 在自己创建的 .egg 文件中使用 Python 模块

python - 使 python pip 找出要下载的正确包版本