Это лучшее решение, которое я смог найти:
Поскольку я могу менять новое программное обеспечение, но не старое, каждый раз, когда я создаю рассол, который должен быть прочитан старым программным обеспечением, Я делаю
def create_old_pickle(new_pickle):
loaded = pickle.loads(new_pickle)
repickled = pickle.dumps(loaded, protocol=2)
return repickled
Это создает старые соленья в новых python.
Таким образом, старый программный API остается прежним.
Вы можете заметить проблемы с unicode-> байтами, но это нечто другое.