Python - py_compile не имеет вывода - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь проверить ошибки в коде Python, и мне нужен доступ к самому журналу ошибок (я не могу просто проверить, был ли создан файл .pyc).

Мой текущий процесс - у меня есть скрипт для запуска python3 -m py_compile test.py, где test.py - это "aegsedrg" и ничего больше (другими словами, неверный код Python).

Когда python3 test.py выполняется, результатом является ошибка (как и ожидалось):

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    aegsedrg
NameError: name 'aegsedrg' is not defined

Однако python3 -m py_compile test.py не возвращает (через stdout или stderr) ошибок.

Это на сервере Ubuntu 16.04, и я недавно обновил и обновил его.Я также полностью переустановил Python 3. Я не думаю, что это проблема с разрешениями, test.py - это 777.

Почему python3 -m py_compile test.py ничего не возвращает?

-edit-

Я также пытался использовать следующий скрипт Python для этого:

import py_compile
print("Here")
py_compile.compile("test.py")
print("Here2")

Вывод «Здесь», а затем «Здесь2».

1 Ответ

0 голосов
/ 10 декабря 2018

Строка aegsedrg как таковая (или любая другая строка без ключевого слова) в отдельном файле не является синтаксической ошибкой.Это может быть идентификатор, определенный в другом месте программы.py_compile не выполняет скомпилированный файл и не может перехватывать ошибки времени выполнения (например, NameError).

Попробуйте написать что-нибудь синтаксически некорректное в вашем файле, например, ту же строку, за которой следует знак вопроса:

py_compile.compile("test.py")
  File "test.py", line 1
    aegsedrg ?
             ^
SyntaxError: invalid syntax
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...