docker中的PyCharm远程调试包含

2024-06-09 09:44:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难弄清楚如何设置在Docker容器中运行的python应用程序(Flask)的远程调试。 具体来说,我使用的是docker compose、PyCharm professional和python 3.5。 这就是我到目前为止所做的:

  • 我将“pycharm-debug-py3k.egg”复制到项目文件夹中
  • 我在wsgi.py文件中添加了以下行:

    import sys
    sys.path.append('../pycharm-debug-py3k.egg') 
    import pydevd 
    pydevd.settrace('0.0.0.0', port=8200, stdoutToServer=True, stderrToServer=True)
    
  • 我在PyCharm中创建了一个远程调试配置(通过将本地计算机项目路径映射到docker容器中的路径)

通过从PyCharm运行调试配置(单击bug图标),它将打印(并挂起):

Starting debug server at port 4200
Use the following code to connect to the debugger:
import pydevd
pydevd.settrace('0.0.0.0', port=4200, stdoutToServer=True, stderrToServer=True)
Waiting for process connection...

…在docker容器日志中我读到:

Could not connect to 0.0.0.0: 4200

我该怎么办?(我的目标是能够在PyCharm中添加断点,并停止docker容器应用程序的执行以进行调试)


Tags: to项目dockerdebugimporttrue应用程序远程
3条回答

也许你应该连接到你自己的主机,这是你的魅力。不是0.0.0.0,而是您自己的ip地址

使用host.docker.internal而不是0.0.0.0。这将允许docker决定使用哪个IP。

使用远程解释器,这将同时解决一些问题。我已经在这里回答过了Rich editors in a Docker development environment

在IDE中添加一个远程python SDK,这也将解析远程安装的所有库。不过,您需要一个SSH连接来完成这项工作,所以请安装sshd并使用我在回答中概述的共享开发人员密钥。

即使这现在有点多努力,我会给你很多更好的结果,也在其他部分你还没有遇到和会发现,当做一个远程端口连接。

如果您仍然想使用基于端口的调试,请参见Docker: MacOSX Expose Container ports to host machine-这解释了您应该如何理解attach和listen部分。

相关问题 更多 >