Вы можете сделать это с помощью удаленной отладки Python. Откройте окно конфигурации и нажмите + -> Удаленная отладка Python.
![Опция отладчика Python](https://i.stack.imgur.com/H3Aw0.png)
Затем вы либо устанавливаете порт, либо оставляете его пустым, чтобы Pycharm мог найти доступный порт.
![Удаленная отладка Python](https://i.stack.imgur.com/ZZaCn.png)
Затем щелкните значок «Отладка», чтобы запустить сервер отладки, который покажет следующее сообщение.
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
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
. Для панели инструментов или Linux вы добавите IP-адрес своей машины.
Поскольку это докер, мы, вероятно, хотим, чтобы порт был фиксированным, а не динамическим, как я. Теперь мы собираем файл докера и запускаем его.
Это откроет всплывающее окно в pycharm, щелкните автоопределение, чтобы определить исходные сопоставления.
![Автоопределение](https://i.stack.imgur.com/Tpwue.png)
И тогда у вас будет точка останова кода в основной строке вашего файла.
![«Отладка](https://i.stack.imgur.com/3RoLE.png)
person
Tarun Lalwani
schedule
10.10.2017