我有一个Python应用程序,但根据文档,调试端口仅支持Java。
如何在Intellij中设置断点并调试我的Python容器?有没有办法让Python容器连接到Intellij Python调试器?
编辑:我正在运行Windows 10,使用Windows的docker,并且容器是Linux。也许我需要手动设置某种远程调试来进行Intellij Python调试器?还有,我必须拥有专业版才能进行远程调试吗?或者是否有使用社区版的解决方法?
我有一个Python应用程序,但根据文档,调试端口仅支持Java。
如何在Intellij中设置断点并调试我的Python容器?有没有办法让Python容器连接到Intellij Python调试器?
编辑:我正在运行Windows 10,使用Windows的docker,并且容器是Linux。也许我需要手动设置某种远程调试来进行Intellij Python调试器?还有,我必须拥有专业版才能进行远程调试吗?或者是否有使用社区版的解决方法?
您可以使用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...
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 for Mac,但如果使用Docker for Windows,则使用docker.for.win.localhost
。对于工具箱或Linux,您将添加您机器的IP地址。然后你的代码将在文件的主要行处设置断点