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中,以了解如何设置远程解释器。
上述设置不会出错
编辑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)
希望我帮助!
链接地址: http://www.djcxy.com/p/44953.html上一篇: PyCharm docker debugging error
下一篇: Debug the javascript part of Django project using Webstorm