Есть ли способ сравнить разницу между 2 Pypi и sourecode - PullRequest
0 голосов
/ 26 апреля 2019

Я уже собрал пакет pypi, хранящийся на сервере pypi несколько дней назад.Теперь я хочу сравнить исходный код diff между уже созданным пакетом pypi и недавним кодом, созданным сегодня.Есть ли способ к этому?

Я хочу сравнить уже собранный пакет pypi и недавно собранный код.И если есть какая-либо разница в исходном коде, то только создайте новый пакет и загрузите его на сервер Pypi

1 Ответ

0 голосов
/ 26 апреля 2019

Если у вас есть только Python байт-коды , вы не можете получить соответствующий исходный код (это гипотетическое преобразование называется декомпиляция и вообще невозможно; прочитайте, например, о Теорема Райса ). Так как любой перевод (например, сделанный программой python) из исходного кода в байт-код является потерей некоторой информации (например, имя локальных переменных, комментарии, объясняющие намерение код).

Равенство поведения функций с помощью статического анализа их исходного кода (а наблюдаемое поведение вашего кода - это то, что вас действительно волнует) неразрешимая проблема . Узнайте больше о λ-исчислении , оно тесно связано с этим вопросом.

Исходный код (по определению, предпочтительная форма кода, над которой работают разработчики) предназначен не только для компьютеров, но в основном для коллег-разработчиков: другими словами, большая часть его значения и его значения социальный (вот о чем свободное программное обеспечение ). Узнайте больше о семантике программ.

Например, переименование переменной с i на x может передать неявную гипотезу о том, что предполагаемый динамический тип времени выполнения значения этой переменной является целым числом и становится плавающей точкой.

Может быть, вам нужен какой-нибудь менеджер пакетов (или какая-нибудь система управления версиями , если вы имеете дело с исходным кодом, или какой-нибудь инструмент автоматизации сборки , если вы строите и устанавливаете программное обеспечение из него). Python имеет что-то для управления пакетами. scons автоматизация сборки использует Python, но есть много других инструментов автоматизации сборки, GNU make является распространенным (который можно использовать для запуска компиляции из .py исходные файлы в .pyc байт-код файлы и их установка ). Для контроля версий я рекомендую git.

PS. Ваш вопрос очень неясен и пахнет какой-то проблемой XY .

...