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

如何在PyPI Python包中存放数据并通过pip正确获取?

解决PyPI包安装后数据文件缺失问题

你的问题出在wheel包未包含数据文件——虽然MANIFEST.in能确保源码分发包(sdist)包含文件,但pip默认安装的是wheel包,需要额外配置让setuptools把数据文件打包进wheel。

  • 调整MANIFEST.in,明确指定包目录下的文件(避免匹配src下无关文件):

    recursive-include src/taxon2wikipedia *.rq *.py *.jinja *.json
    
  • 在setup.py的setuptools.setup()中添加包数据配置:

    setuptools.setup(
        # 保留你已有的其他配置
        package_data={
            "taxon2wikipedia": ["dicts/*.json", "data/*.rq", "data/*.jinja"]
        },
        include_package_data=True,
    )
    
    • package_data 明确列出要包含的文件路径(路径相对于包的根目录)
    • include_package_data=True 让setuptools自动识别并打包MANIFEST.in和package_data中指定的文件
  • 重新构建并上传包:

    rm -rf dist/ build/ *.egg-info
    python3 -m build
    twine upload dist/*
    

验证方法

构建完成后,你可以用unzip命令解压生成的wheel文件,检查其中的taxon2wikipedia/dicts和taxon2wikipedia/data目录是否存在,确保数据文件已被正确打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:35:14