如何在python包中访问pickle数据
我试图在PyPI上发布一个包(作为新手),其中包含作为pickle文件存储的数据。但我似乎无法读取主代码中的数据 我的包结构是:如何在python包中访问pickle数据,python,setuptools,pypi,Python,Setuptools,Pypi,我试图在PyPI上发布一个包(作为新手),其中包含作为pickle文件存储的数据。但我似乎无法读取主代码中的数据 我的包结构是: 包/ setup.py 舱单 包装/ package.py __初始值 data.pkl 我在package.py中的代码是这样的: data=pickle.load(打开('data.pkl','rb')) def剂量测定(数据): ***对数据执行某些操作的代码*** 返回变量 var=剂量测定法(数据) 当我安装软件包并尝试导入它时,会出现以下错误: Fil
包/
setup.py
舱单
包装/
package.py
__初始值
data.pkl
我在package.py中的代码是这样的:
data=pickle.load(打开('data.pkl','rb'))
def剂量测定(数据):
***对数据执行某些操作的代码***
返回变量
var=剂量测定法(数据)
当我安装软件包并尝试导入它时,会出现以下错误:
FileNotFoundError:[Errno 2]没有这样的文件或目录:“data.pkl”
我的package.py
似乎找不到我的pickle文件。是的,我在setup.py
中设置了include\u package\u data=True
,pickle文件通过MANIFEST.in
文件加载
我已尝试在
\uuu init\uuuuuuupy
中加载pickle文件,或指定完整路径(package/data.pkl
),但这些都不起作用。必须指定data.pkl相对于源代码的路径。这可以使用\uuuu file\uuuu
变量来完成(如所述)
下面的代码为我解决了这个问题
this_dir,this_filename=os.path.split(uu file_uu)#Get path of data.pkl
data\u path=os.path.join(这个目录'data.pkl')
data=pickle.load(打开(数据路径'rb'))
您是否尝试过像“/data.pkl”这样的相对路径?pickle在包中吗?(每个包都只是一个可以列出的.zip
或.tar.gz
归档文件)。它是在包安装之后安装的吗?指定相对路径(./data.pkl)会产生相同的错误。安装后,酸洗液在包装中。