我很难弄清如何设置远程调试在运行在 Docker 容器中的 Python 应用程序(Flask)。
具体来说,我正在使用 docker-compose、PyCharm 专业版和 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 容器日志中我读到:
无法连接到 0.0.0.0: 4200
我应该怎么办?(我的目标是能够在 PyCharm 中添加断点,停止执行 Docker 容器应用程序以进行调试)
wsgi.py
文件中你定义了pydevd.settrace('0.0.0.0', port=8200, stdoutToServer=True, stderrToServer=True)
,但是调试服务器运行在4200
上,也许改成pydevd.settrace('0.0.0.0', port=4200, ...
会起作用? - Pitt