Как отладить контейнер python в intellij?
плагин docker имеет порт отладки для подключения к контейнеру
У меня есть приложение python, но в соответствии с docs порт отладки поддерживается только для java.
Как установить точки останова и отладить контейнер python в intellij? Есть ли способ подключить контейнер python к отладчику IntelliJ python?
Edit: я запускаю Windows 10, docker для Windows и контейнер это linux. Возможно, мне нужно вручную настроить какую-то удаленную отладку для отладчика intellij Python? Кроме того, можно также спросить, должна ли у меня быть профессиональная версия для удаленной отладки или есть обходной путь с помощью сообщества?
1 ответов
вы можете сделать это с помощью удаленной отладки Python. Откройте окно конфигурации и нажмите на + -> Python Remote Debug
затем вы либо устанавливаете порт, либо держите его пустым для Pycharm, чтобы найти доступный порт.
затем нажмите на значок отладки, чтобы запустить сервер отладки, который покажет ниже вид сообщения
Starting debug server at port 57588
Use the following code to connect to the debugger:
import pydevd
pydevd.settrace('localhost', port=57588, stdoutToServer=True, stderrToServer=True)
Waiting for process connection...
теперь вам нужно настроить отладку pydev внутри докер. Вам понадобится pycharm-debug-py3k.egg
для этого. Для меня я скопировал в текущую папку Dockerfile, как показано ниже
cp "/Users/tarun.lalwani/Library/Application Support/IntelliJIdea2017.2/python/pycharm-debug-py3k.egg" .
расположение для вашего изменится в зависимости от установленной версии IntelliJ. После этого нам нужно отредактировать наш Dockerfile
FROM python:3.6
WORKDIR /app
ENV PYTHONPATH=/app:/app/debug
COPY pycharm-debug-py3k.egg /app/debug
COPY debug_test.py /app/
CMD python debug_test.py
The debug_test.py
при построении будет иметь ниже строк вверху
import pydevd
pydevd.settrace('docker.for.mac.localhost', port=55507, stdoutToServer=True, stderrToServer=True)
Примечание: я использовал
docker.for.mac.localhost
как я использую docker для mac, но если использовать Docker для windows, то используйтеdocker.for.win.localhost
. Для toolbox или linux вы добавит IP вашей машины
поскольку это docker, мы, вероятно, хотим сохранить порт фиксированным, а не динамическим, как я. Теперь мы создадим файл docker и запустим его.
это откроет всплывающее окно в pycharm, нажмите autodetect, чтобы обнаружить сопоставления источника
и тогда у вас будет ваш код breakpointed в главной строке вашего файла