升级到Mac OS Catalina后,Pickle加载不起作用

时间:2019-10-26 16:01:52

标签: python serialization pickle macos-catalina

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

我尝试将代码剥离到仅加载行并包括其他代码-没有任何运行。如果我将pickle.loads行注释掉,其他所有内容都会正常运行。但是我似乎无法反序列化字节流。尝试/除外也不起作用。

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]: 

变量资源管理器为空,查询变量名将引发NameError

0 个答案:

没有答案