Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python包中访问pickle数据_Python_Setuptools_Pypi - Fatal编程技术网

如何在python包中访问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

我试图在PyPI上发布一个包(作为新手),其中包含作为pickle文件存储的数据。但我似乎无法读取主代码中的数据

我的包结构是:

包/
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)会产生相同的错误。安装后,酸洗液在包装中。