PyPI上传Python包内置CSV数据集问题求助(代码报错)
解决PyPI包内置CSV数据集加载问题
核心问题排查与修复方案
1. 先确认包结构与资源配置
你的包必须符合标准结构,且确保CSV文件被正确打包:
你的包名/ ├── __init__.py ├── load/ │ ├── __init__.py # 必须存在,空文件即可 │ └── data.csv └── 存放load_data的模块.py
同时要在打包配置中声明资源文件:
- 用
setup.py的话,添加:from setuptools import setup, find_packages setup( name="你的包名", packages=find_packages(), package_data={ "你的包名": ["load/*.csv"], }, ) - 用
pyproject.toml(现代推荐方式)的话,添加:[tool.setuptools.package-data] "你的包名" = ["load/*.csv"]
2. 修复资源路径获取代码
pkg_resources已逐步被官方推荐的importlib.resources替代,改用更稳定的实现:
import pandas as pd from importlib.resources import files def load_data(): # 替换成你的实际包名,比如包叫my_dataset,就写my_dataset.load file_path = files("你的包名.load").joinpath("data.csv") df = pd.read_csv(file_path) return df
如果坚持用pkg_resources,要确保安装了setuptools,且第一个参数是你的实际包名(不是示例中的package)。
3. 本地测试必做步骤
不要直接在源码目录测试,先本地安装包模拟PyPI环境:
pip install -e .
然后在Python终端验证:
from 你的包名 import load_data df = load_data() print(df.head())
4. 补全依赖声明
确保你的包依赖pandas,在配置文件中添加:
- setup.py:
install_requires=[ "pandas>=1.0.0", ] - pyproject.toml:
[project] dependencies = [ "pandas>=1.0.0", ]
内容的提问来源于stack exchange,提问作者AM1995
相关产品推荐
相关产品推荐

