gpt4 book ai didi

使用 Pydev 进行 Django/Docker/远程调试

转载 作者:行者123 更新时间:2023-12-02 06:51:04 24 4
gpt4 key购买 nike

我的设置如下:- 在 docker 中运行的 django 服务器,端口映射:8090:8090- Eclipse 与 PyDev

我希望能够在 Pydev 上设置断点(单击一行,一步一步)

我发现了几篇类似的文章; http://www.pydev.org/manual_adv_remote_debugger.html

但它仍然不起作用。

1)我应该将manage.py更新为“import pydev”吗?要添加哪些行?我是否必须在 docker 容器内复制 pydev 插件的 pysrc 才能进行模块导入?

2) 是否需要端口转发?运行到 docker 中的 python 实例应该能够访问主机上的远程调试服务器?

3)我找到了有关 pycharm 和使用 ssh 进行远程调试的文章?不可能用 pydev 做类似的事情吗?

4) 如何“链接”我的本地目录和 docker“目录”?

[编辑]我找到了解决方案

  • 将 eclipse/path_to\pydev\plugins\org.python.pydev\pysrc 目录复制到 Docker 容器可以访问的位置。

  • 编辑 pysrc/pydevd_file_utils.py,并在主机和 docker 容器之间添加目录映射,如下所示:PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'C:/django',r'/.../lib/django'),(r'C:/workspace/myapp',r'/var/www/myapp')]如果有多个包含 python 代码的路径,则可以设置多个元组

  • 编辑manage.py并添加以下内容

    sys.path.append('/my_path/to_pysrc_/under_docker/pysrc')导入 pydevdpydevd.settrace(host='172.17.42.1')​​ #你主机的IP

  • 在 Pydev 中,在首选项 > Pydev > 运行/调试 > 远程调试器端口:5678

  • 在调试视角中,单击“启动 Pydev 服务器”

  • 在您的 Docker 中,运行: python manage.py runserver 0.0.0.0:8090 --noreload

    (将 8090 替换为您的 http 端口)

    • 在 Pydev 中:你会看到代码在 settrace 之后就中断了!

    • 现在您可以添加一些断点并使用 Pydev 的调试 CLI:) 尽情享受!

最佳答案

我有类似的问题 - docker中的django项目,通过docker解释器通过pycharm 145.1504和162.1120连接到docker,运行服务器工作正常,但调试在pycharm运行后堆栈

/usr/bin/python2.7 -u /root/.pycharm_helpers/pydev/pydevd.py --multiproc --qt-support --client '0.0.0.0' --port 38324 --file /opt/project/manage.py runserver 0.0.0.0:8000.

我尝试了几天找出原因,然后通过 ssh 连接将 pycharm 连接到 docker,一切正常,运行和调试。

关于使用 Pydev 进行 Django/Docker/远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36058776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com