Я понял, что после компиляции скрипта python он исправляет информацию о пути этого скрипта.Путь скрипта python остается таким же после компиляции
Например: У меня есть питон скрипт как /tmp/src/foo.py, который имеет одну команду печати
print foo
Теперь я компиляцией этот код и переместить его в скомпилированный каталог.
python -m compileall -f /tmp/src/foo.py
mv /tmp/src/foo.pyc /tmp/compiled/
Тогда я бегу сценарий и он дает ошибку, как я excepts
python /tmp/compiled/foo.pyc
Traceback (most recent call last):
File "/tmp/src/foo.py", line 1, in <module> # focus heree
print foo
NameError: name 'foo' is not defined
Как вы понимаете, имя файла сценария появились по ошибке, как его имя до компиляции. (Точно так же, как путь, который я даю команде компиляции)
На самом деле у меня нет проблем с этой ситуацией, я спрашиваю, потому что мне просто интересно. В чем причина и есть ли способ увидеть реальный путь в ошибках?
На мой взгляд, мы не могли изменить двоичный файл, но, возможно, мы можем указать параметр командной строки на python при запуске скомпилированного кода или, возможно, мы можем добавить сегмент кода в исходный код?
Благодаря
Что вы подразумеваете под «есть ли способ увидеть реальный путь в ошибках?»? Вы уже видите реальный путь? Что вы хотите увидеть там? –
Почему вы хотите вручную «скомпилировать» сценарий и почему вы можете поместить его в другой каталог? – smeso
@ Forbidden Overseer Я вижу исходный путь. Я хочу увидеть путь скомпилированного кода. – ibrahim