在升级到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
。