Pythonwin.exe не указывает строку кода для ошибок во время выполнения - PullRequest
1 голос
/ 08 марта 2019

Это сложная проблема, поскольку она касается самого пользовательского интерфейса Pythonwin.exe, а не моего кода.

Когда я запускаю файл со следующим кодом, я ожидаю, что в случае ошибки он покажет строку, в которой произошел сбой, в выводе traceback

Я буквально просто создал неиспользованную 32-битную среду Python 3.5, установил pywin32 и открыл мой testfile.py, чтобы запустить его, и вот результаты. Скриншот

Если вы видите строку с надписью

File "C:\testfile.py", line 2, in <module>
  foo = 2 #this line works fine, but is identified as the traceback line

Я бы ожидал, что это будет указывать на строку 5, а не на строку 2. Внутри более крупного скрипта это гораздо более проблематично, так как мне нужно угадать, какая строка вызвала ошибку, основываясь на контексте.

Чтобы воспроизвести мою ситуацию в среде на основе анаконды: 1. откройте командную строку Anaconda 2. запустите следующие строки для генерации нашей среды

set CONDA_FORCE_32BIT=1
conda create -n test python=3.5
activate test
conda install -y pywin32
  1. Сохраните файл «testfile.py» с текстом:
#comment
foo = 2 #this line works fine, but is identified as the traceback line
a=2
a=3
a=b #this line causes the error, but isn't identified
  1. Откройте PythonWin.exe, откройте файл «testfile.py» и нажмите F5 или нажмите «Выполнить»

И это не просто проблема в установленных средах Anaconda. Если у кого-то есть понимание того, как заставить его сообщать о неверной строке кода или почему он работает таким образом, пожалуйста, дайте мне знать. Спасибо!

...