Загрузка Pickle не работает после обновления до Mac OS Catalina - PullRequest
1 голос
/ 26 октября 2019

У меня есть простой код для загрузки сериализованного маринованного файла, который работал нормально до того, как я обновился до Macos Catalina. Теперь, когда я запускаю код в консоли iPython в Spyder, консоль перезагружается в строке 1, все переменные очищаются, и сообщение об ошибке отсутствует. Вывод на печать после оператора загрузки также отсутствует.

Я пытался разделить код только на строки загрузки и включить другой код - ничего не работает. Если я закомментирую строку 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.

...