我在使用 Python 的 pickle 时遇到了问题。我需要通过将文件路径提供给 importlib.util 来加载一些 Python 模块,如下所示:
import importlib.util
spec = importlib.util.spec_from_file_location('custom', 'C:\path\to\.py\file.py')
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
我想从加载的模块中实例化一些对象并将它们序列化以供以后使用,但是当我尝试时:
pickle.dump(module.ObjectFromModule(), open('C:\object\location\obj.p', 'wb'))
我明白了: _pickle.PicklingError: Can't pickle : import of module 'custom' failed
如果我尝试腌制通过 import 语句导入的对象,则不会发生这种情况。我怎样才能绕过这个?