You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

setup.py配置package_data无法正确包含.xlsx文件问题排查

可行解决步骤

按如下顺序操作即可解决该问题:

  1. 清空所有旧构建缓存
    执行以下命令删除构建生成的缓存目录(Windows用户可手动删除对应文件夹):

    rm -rf build dist *.egg-info
    

    该步骤是最容易忽略的核心问题点:旧的构建缓存会保留历史配置的打包规则,即使你修改了setup.py或MANIFEST.in也不会生效,导致xlsx文件一直被排除。

  2. 调整setup.py为兼容性更高的写法
    嵌套子包的资源匹配在部分版本的setuptools中存在规则识别问题,直接给子包单独指定资源文件即可:

    from setuptools import setup, find_packages
    
    setup(
        name='myproject',
        packages=find_packages(),
        package_data={
            # 全局匹配所有txt、xlsx文件
            "": ["*.txt", "*.xlsx"],
            # 单独指定Data子包的资源,兜底兼容
            "myproject.Data": ["*.txt", "*.xlsx"]
        },
        # 如果你使用MANIFEST.in管理资源,取消下面这行的注释
        # include_package_data=True
    )
    
  3. (可选)如果保留MANIFEST.in,写入如下内容强制包含对应文件:

    recursive-include myproject *.xlsx *.txt
    
  4. 重新构建安装包
    先卸载已安装的旧版本:

    pip uninstall -y myproject
    

    构建新的源码包:

    python setup.py sdist
    

    安装新构建的包(也可使用pip install . --no-cache-dir直接本地安装):

    pip install dist/myproject-*.tar.gz
    

操作完成后再检查site-packages下的myproject/Data目录,即可看到test.xlsx文件。

内容的提问来源于stack exchange,提问作者rsgny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:45:05