В моей работе используется приложение Python 2.5, которое было скомпилировано с py2exe и затем распространено среди пользователей. В связи с переходом на новую базу данных мне было поручено обновить приложение. К сожалению, у нас больше нет оригинального исходного кода. (Хотя у нас есть источник других проектов, которые были получены из этой базы кода.)
К счастью, у меня есть доступ к скомпилированным .pyc
файлам, расположенным в library.zip
. Обнаружив файл .pyc
, я импортировал его, просмотрел его документацию и проверил его поведение. В сочетании с тем фактом, что у меня есть более поздняя версия исходного кода, я считаю, что хорошо разбираюсь в том, что находится в файле .pyc
.
Итак, теперь я удалил старый файл .pyc
из library.zip
и добавил его в мою новую версию. И это в основном работает.
При наличии правильного ввода старая программа успешно вызывает новый код в library.zip
и ведет себя так же, как раньше. Однако старый код не будет перехватывать какие-либо исключения нового кода. Я открыл оба модуля в интерпретаторе и сравнил исключения, которые кажутся идентичными (одно и то же имя класса, даже одинаковые строки ошибок).
Итак, мой вопрос: куда мне идти отсюда? Я подозреваю, что, хотя я не вижу никакой разницы между исключениями, что-то в них должно быть другим. Как мне в дальнейшем проверить это? Что еще я мог упустить?