【发布时间】:2019-11-28 00:06:52
【问题描述】:
我正在尝试在 PyPI 上发布一个包(作为新手),其中包含存储为 pickle 文件的数据。但我似乎无法读取主代码中的数据。
我的包结构是:
package/
setup.py
MANIFEST.in
package/
package.py
__init__.py
data.pkl
而我在 package.py 中的代码有点像这样:
data = pickle.load(open('data.pkl', 'rb'))
def doSomething(data):
***code to do something on data***
return variable
var = doSomething(data)
当我安装包并尝试导入它时,我收到错误:
FileNotFoundError: [Errno 2] No such file or directory: 'data.pkl'
我的package.py 似乎找不到我的泡菜文件。是的,我在setup.py 中设置了include_package_data = True,并且pickle 文件通过MANIFEST.in 文件加载。
我尝试在__init__.py 中加载pickle 文件或指定完整路径(package/data.pkl),但这些都不起作用。
【问题讨论】:
-
你试过像“./data.pkl”这样的相对路径吗?
-
泡菜在包里吗? (每个包都只是您可以列出的
.zip或.tar.gz存档)。是包安装后安装的吗? -
指定相对路径 (./data.pkl) 会产生相同的错误。安装后pickle在包内。
标签: python setuptools pypi