gpt4 book ai didi

python - 如何访问python包中的pickle数据

转载 作者:行者123 更新时间:2023-12-02 04:50:48 24 4
gpt4 key购买 nike

我正在尝试在 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找不到我的泡菜文件。是的,我设置了include_package_data = Truesetup.py并且 pickle 文件是通过 MANIFEST.in 加载的文件。

我尝试加载 __init__.py 中的 pickle 文件或指定完整路径( package/data.pkl ),但这些都不起作用。

最佳答案

必须指定data.pkl相对于源代码的路径。这可以使用 __file__ 变量来完成(如 here 所述)。

下面的代码为我解决了这个问题

this_dir, this_filename = os.path.split(__file__)  # Get path of data.pkl
data_path = os.path.join(this_dir, 'data.pkl')
data = pickle.load(open(data_path, 'rb'))

关于python - 如何访问python包中的pickle数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57104942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com