如何在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
相关产品推荐
相关产品推荐

