【问题标题】:How does setuptools decide which files to keep for sdist/bdist?setuptools 如何决定为 sdist/bdist 保留哪些文件?
【发布时间】:2009-05-21 18:19:08
【问题描述】:

我正在开发一个使用 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'], ...)

它不在源代码管理中,因为它是一组上游组件。没有清单。

当我运行python setup.py sdist 时,我得到了package/ 目录下大部分文件的压缩包,但任何不包含.py 文件的目录都被忽略了。

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

recursive-include package *

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

【问题讨论】:

    标签: python setuptools distutils


    【解决方案1】:

    您需要添加一个 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']...
    
    )
    

    【讨论】:

    • 好吧,我做了你伤心的事。但是当我通过pip install git+git://repo 安装它时,它不包含文件。假设你是在目录布局的幕层吗?
    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多