Если у вас есть только Python байт-коды , вы не можете получить соответствующий исходный код (это гипотетическое преобразование называется декомпиляция и вообще невозможно; прочитайте, например, о Теорема Райса ). Так как любой перевод (например, сделанный программой python
) из исходного кода в байт-код является потерей некоторой информации (например, имя локальных переменных, комментарии, объясняющие намерение код).
Равенство поведения функций с помощью статического анализа их исходного кода (а наблюдаемое поведение вашего кода - это то, что вас действительно волнует) неразрешимая проблема . Узнайте больше о λ-исчислении , оно тесно связано с этим вопросом.
Исходный код (по определению, предпочтительная форма кода, над которой работают разработчики) предназначен не только для компьютеров, но в основном для коллег-разработчиков: другими словами, большая часть его значения и его значения социальный (вот о чем свободное программное обеспечение ). Узнайте больше о семантике программ.
Например, переименование переменной с i
на x
может передать неявную гипотезу о том, что предполагаемый динамический тип времени выполнения значения этой переменной является целым числом и становится плавающей точкой.
Может быть, вам нужен какой-нибудь менеджер пакетов (или какая-нибудь система управления версиями , если вы имеете дело с исходным кодом, или какой-нибудь инструмент автоматизации сборки , если вы строите и устанавливаете программное обеспечение из него). Python имеет что-то для управления пакетами. scons
автоматизация сборки использует Python, но есть много других инструментов автоматизации сборки, GNU make
является распространенным (который можно использовать для запуска компиляции из .py
исходные файлы в .pyc
байт-код файлы и их установка ). Для контроля версий я рекомендую git
.
PS. Ваш вопрос очень неясен и пахнет какой-то проблемой XY .