PyCharm docker调试错误

看EDITS

我试图让最新版本的PyCharm成功调试在Docker中运行的Django。 但是,我在设置远程Python解释器时遇到了问题,并且只要尝试启动调试器,就会收到错误消息。

Can't run remote python interpreter: com.github.dockerjava.api.exception.InternalServerErrorException: {"message":"the working directory 'C:/Program Files (x86)/JetBrains/PyCharm 171.2613.10/jre64/jre/bin' is invalid, it needs to be an absolute path"}

我眼中的路径看起来相当绝对,所以我猜测它是另一回事。 我甚至不确定谁或导致错误的原因。 Docker容器(由于JSON响应)或PyCharm。

运行

  • PyCharm 2017.1
  • Docker for Windows(docker版本1.13.0)
  • 任何想到我可能会错过/遇到问题?

    编辑

    忘了将我的设置包含在PyCharm中,以了解如何设置远程解释器。

    在这里输入图像描述

    上述设置不会出错

    编辑2

    它看起来像“Django项目根”意外地被设置为上面的错误路径。 所以这是固定的。 我现在的问题是,当我运行运行/调试配置时,它会尝试再次启动服务器,该服务器已在Docker容器中运行。 有没有办法附加到已经运行的Python进程?

    编辑3

    当启动调试器(PyCharms Python远程调试器)并在启动服务器时,我现在已设法获得“成功”消息。 不过,我似乎调试器在1秒(或更少)后停止监听。 我的理论是,调试器在通过pydevd.settrace()函数调用后失去连接。 我在manage.py的底部放置了以下代码(位于头顶):

    sys.path.append('pycharm-debug.egg')
    import pydevd
    pydevd.settrace('192.168.1.100', port=21000)
    

    我错过了什么?

    编辑4

    进一步调查后,我现在似乎成功地连接了服务器启动时的调试器。 但是,如果存在pydevd.settrace(....)函数调用,则服务器永远不会启动。 该启动似乎冻结/停止在python manage.py runserver 0.0.0.0:8000 。 只要我删除settrace行。 服务器启动没有问题。 有任何想法吗?

    服务器启动时,我也会收到以下消息: warning: Debugger speedups using cython not found. Run '"/usr/local/bin/python" "/usr/local/lib/python3.5/site-packages/setup_cython.py" build_ext --inplace' to build. warning: Debugger speedups using cython not found. Run '"/usr/local/bin/python" "/usr/local/lib/python3.5/site-packages/setup_cython.py" build_ext --inplace' to build.

    问题是我无法运行消息中列出的命令,因为setup_cython文件不存在。


    你是对的! 它确实不启动runserver进程,但我相信这不是因为没有工作,而是因为它。

    看到,当你成功地将pydevd settrace连接到调试器服务器时,你必须在PyCharm上配置它已经工作,至少它对我有用。

    我相信runserver不工作的原因是因为缺少cython创建的警告正在停止调试器,所以你唯一要做的就是告诉它继续运行并跳转该警告,单击绿色的右指向箭头来执行所以。

    远程调试器停止远程调试器正在运行

    PS。

    我正在调试在docker(docker-machine)上运行的django应用程序,即主机IP,在这种情况下是192.168.99.1

    #!/usr/bin/env python
    import os
    import sys
    
    if __name__ == "__main__":
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "helpdesk.settings")
    
        from django.core.management import execute_from_command_line
    
        sys.path.append('pycharm-debug.egg')
        import pydevd
        pydevd.settrace('192.168.99.1', port=3000, stdoutToServer=True, stderrToServer=True)
    
        execute_from_command_line(sys.argv)
    

    pycharm远程调试器配置

    希望我帮助!

    链接地址: http://www.djcxy.com/p/44953.html

    上一篇: PyCharm docker debugging error

    下一篇: Debug the javascript part of Django project using Webstorm