По документация, settrace
/gettrace
функции могут быть использованы для того, чтобы реализовать Python отладчик:
sys.settrace(tracefunc)
Установите функцию трассировки системы, бее ch позволяет вам реализовать отладчик исходного кода Python в Python. Функция зависит от потока; для отладчика, поддерживающего несколько потоков, он должен быть зарегистрирован settrace()
для каждого отлаживаемого потока.
Однако эти методы не могут быть доступны во всех реализациях:
CPython деталь реализации: settrace()
функция предназначена только для осуществления отладчики, профилировщики, инструменты покрытия и нравится. Его поведение является частью платформы реализации, а не частью определения языка и, следовательно, может быть недоступно во всех реализациях Python .
Вы можете использовать следующий фрагмент кода для того, чтобы проверить, если кто-то отладки кода:
import sys
gettrace = getattr(sys, 'gettrace', None)
if gettrace is None:
print('No sys.gettrace')
elif gettrace():
print('Hmm, Big Debugger is watching me')
else:
print("Let's do something interesting")
print(1/0)
Это один работает для PDB:
$ python -m pdb main.py
> /home/soon/Src/Python/main/main.py(3)<module>()
-> import sys
(Pdb) step
> /home/soon/Src/Python/main/main.py(6)<module>()
-> gettrace = getattr(sys, 'gettrace', None)
(Pdb) step
> /home/soon/Src/Python/main/main.py(8)<module>()
-> if gettrace is None:
(Pdb) step
> /home/soon/Src/Python/main/main.py(10)<module>()
-> elif gettrace():
(Pdb) step
> /home/soon/Src/Python/main/main.py(11)<module>()
-> print('Hmm, Big Debugger is watching me')
(Pdb) step
Hmm, Big Debugger is watching me
--Return--
> /home/soon/Src/Python/main/main.py(11)<module>()->None
-> print('Hmm, Big Debugger is watching me')
И PyCharm:
/usr/bin/python3 /opt/pycharm-professional/helpers/pydev/pydevd.py --multiproc --qt-support --client 127.0.0.1 --port 34192 --file /home/soon/Src/Python/main/main.py
pydev debugger: process 17250 is connecting
Connected to pydev debugger (build 143.1559)
Hmm, Big Debugger is watching me
Process finished with exit code 0
Это Official один ..., в котором компилирование будет в лучшем –
В любом случае вы можете проверить, если ваше приложение компилирует и работает, как вы ожидали, то .... –
PyCharm это просто IDE, это не другой переводчик. oO – MisterMiyagi