python - 如何使用 IntelliJ 远程调试 Python?

标签 python python-3.x debugging intellij-idea

有没有办法使用 IntelliJ 远程调试 Python3?我找不到任何选项。使用 VS Code,就像拥有此文件一样简单:

launch.json


     {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "connect": {
                "host": "172.18.0.5",
                "port": 5678
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ],
            "justMyCode": true
        }
    ]
}

一切都像一个(py)魅力!

如何使用 IntelliJ 做到这一点?

我检查了 JetBrains 的所有教程,但似乎没有一个适合我正在寻找的内容。

最佳答案

IntelliJ IDEA 和 PyCharm 都支持使用 Python 进行远程调试,只需按照此处的指南操作即可:

https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html

如果您使用的是IntelliJ IDEA,可以先安装Python插件,通过设置>插件>市场,输入Python,然后点击安装按钮。

这是有关使用 Python 远程调试服务器配置进行远程调试的分步指南 https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html#remote-debug-config :

  1. 让 IDEA/PyCharm 在本地运行 IDE 的计算机上托管调试器服务器:

注意:这一步与 VS Code 相比有很大不同(抱歉我对这个工具了解甚少),在 VS Code 中它使用包 https://github.com/microsoft/debugpy ,但它首先会调用 python -m debugpy --listen 0.0.0.0:5678 ./myscript.py 在远程机器/docker上创建调试服务器,然后是客户端(这里是 VS Code )连接到它。但在 IDEA/PyCharm 中,情况恰恰相反:Python 调试服务器正在本地计算机上监听,远程脚本将连接到 IDE 的服务器。

从主菜单中,选择运行|编辑配置.... 将打开“运行/调试配置”对话框。您必须单击工具栏上的“添加配置”,然后从可用配置列表中选择Python 调试服务器

请将端口更改为 0 到 65535 之间的其他数字,默认值 0 在此不起作用,然后记住 IDE 主机名 区域上方的步骤。

有关IDE主机名的更多信息:如果调试服务器不在同一台机器上,用户可以指定另一个主机(默认为localhost)。如果您想从容器连接它,您可以将其更改为当前计算机的 IP。

您还可以设置路径映射:,方法是单击文件夹选择器,然后选择实际文件夹路径 ${workspaceFolder}。

然后单击OK按钮保存,然后单击运行按钮让调试服务器运行并监听远程代码以连接到它,它将在调试工具窗口:

Starting debug server at port 12,345
Waiting for process connection…
Use the following code to connect to the debugger:
import pydevd_pycharm
pydevd_pycharm.settrace('some ip address', port=12345, stdoutToServer=True, stderrToServer=True)
  • 在远程计算机/容器中安装并运行调试服务器客户端
  • 在您的容器上,在终端中执行以下一次性命令(如果您使用的是 IDE 2022.3): pip3安装pydevd-pycharm~=223.8214.51

    然后通过在源文件的开头添加行来修改要调试的Python文件(此步骤是强制性的),例如:

    #==============this code added==================================================================:
    import pydevd_pycharm
    
    pydevd_pycharm.settrace('some ip address', port=12345, stdoutToServer=True,
                            stderrToServer=True)
                            
    # ... The other codes remain as is
    

    然后您可以通过在远程机器/容器的终端中执行以下命令来启动远程调试: python3 myfile.py

  • 返回本地IDE并开始调试
  • 在第2步之后,现在本地IDE将开始调试。

    最终结果可能如下所示:

    enter image description here

    关于python - 如何使用 IntelliJ 远程调试 Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75127383/

    相关文章:

    Python:TIFFReadDirectory 警告:带有标签的未知字段

    linux - 内核在启动时无限期挂起

    python - 覆盖范围和 flake8 的内嵌注释指令

    Python:点击一个按钮

    Python 3 : tokenize library changes

    python - Numpy 一维数组 : Row or Column Matrix by Default?

    python - 使用 tkinter 的 iconbitmap 读取 .exe 中的图标

    python - 如何卸载 miniconda ? Python

    debugging - Qt 是否提供(有保证的)调试定义?

    Symfony 4 调试生产环境