我试图从另一个目录加载转储的joblib文件,它给出了以下错误
Traceback (most recent call last):
File "D:\dir\loader.py", line 5, in <module>
foob = joblib.load(r'D:\foob.joblib')
File "C:\programming\programmeFiles\anaconda\envs\tensor_gpu\lib\site-packages\joblib\numpy_pickle.py", line 585, in load
obj = _unpickle(fobj, filename, mmap_mode)
File "C:\programming\programmeFiles\anaconda\envs\tensor_gpu\lib\site-packages\joblib\numpy_pickle.py", line 504, in _unpickle
obj = unpickler.load()
File "C:\programming\programmeFiles\anaconda\envs\tensor_gpu\lib\pickle.py", line 1088, in load
dispatch[key[0]](self)
File "C:\programming\programmeFiles\anaconda\envs\tensor_gpu\lib\pickle.py", line 1376, in load_global
klass = self.find_class(module, name)
File "C:\programming\programmeFiles\anaconda\envs\tensor_gpu\lib\pickle.py", line 1426, in find_class
__import__(module, level=0)
ModuleNotFoundError: No module named 'foo'
再现错误的最小代码
目录如下所示
D-
\
foo.py
dumper.py
foob.joblib
dir-
\
loader.py
福比
class Foo:
def __init__(self):
self.s = "here at Foo"
def __repr__(self):
return "fooObject"
dumper.py
import joblib
import foo
foob = foo.Foo()
joblib.dump(foob,'foob.joblib')
加载器.py
import joblib
foob = joblib.load(r'D:\foob.joblib')
print(foob)
如果我尝试从同一个目录(D)加载foob.joblib,它工作正常,在从不同的目录运行loader.py时会发生错误
joblib.load()
要求取消勾选所需的任何模块都位于路径中。因此,您需要在加载时将foo.py
的位置添加到系统路径中例如,添加:
到
loader.py
的顶部相关问题 更多 >
编程相关推荐