Python 升级到mac os catalina后Pickle加载不起作用

Python 升级到mac os catalina后Pickle加载不起作用,python,serialization,pickle,macos-catalina,Python,Serialization,Pickle,Macos Catalina,我有简单的代码来加载一个序列化的pickle文件,在升级到macos Catalina之前,该文件运行良好。现在,当我在Spyder的iPython控制台中运行代码时,控制台在第1行重新启动,所有变量都被清除,并且没有错误消息。loads语句之后也没有打印输出 我已经尝试将代码剥离到只加载行,并包括其他代码——什么都不运行。如果我注释掉pickle.loads行,其他所有内容都会正常运行。但我似乎无法对字节流进行反序列化。try/except也不起作用 print('here') # This

我有简单的代码来加载一个序列化的pickle文件,在升级到macos Catalina之前,该文件运行良好。现在,当我在Spyder的iPython控制台中运行代码时,控制台在第1行重新启动,所有变量都被清除,并且没有错误消息。loads语句之后也没有打印输出

我已经尝试将代码剥离到只加载行,并包括其他代码——什么都不运行。如果我注释掉pickle.loads行,其他所有内容都会正常运行。但我似乎无法对字节流进行反序列化。try/except也不起作用

print('here') # This prints.
os.chdir(basedir+'Data/')
max_bytes = 2**31 - 1
bytes_in = bytearray(0)
input_size = os.path.getsize('[filename]')
with open('[filename]', 'rb') as f_in:
    for _ in range(0, input_size, max_bytes):
        bytes_in += f_in.read(max_bytes)

try:
    tmp_df = pickle.loads(bytes_in)
except:
    print('error') # This does not print.

print('loaded') # This does not print.
如果出现错误,我会收到一条错误消息,初始变量如
max_bytes
应该保持加载状态,但它们都会重置。相反:

In [1]: runfile('[file]', wdir='[dir')
   here

In [1]: 

变量资源管理器为空,查询变量名称会引发
名称错误

如果直接运行代码(即不使用iPython)是否会出现问题?谢谢--我不确定,但我认为可能是文件中的错误。如果使用simple pickle.dump重新pickle数据,我可以使用pickle.load加载它。我还没有尝试过其他需要使用转储进行序列化的大型文件,幸运的是,这个文件较小。您仍然使用与以前相同版本的Python吗?默认的pickle协议取决于使用的Python和模块的确切版本。如果直接运行代码(即不使用iPython)是否会出现问题?谢谢,我不确定,但我认为可能是文件中的错误。如果使用simple pickle.dump重新pickle数据,我可以使用pickle.load加载它。我还没有尝试过其他需要使用转储进行序列化的大型文件,幸运的是,这个文件较小。您仍然使用与以前相同版本的Python吗?默认的pickle协议取决于所使用的Python和模块的确切版本。