如何调试远程python脚本?

Posted

技术标签:

【中文标题】如何调试远程python脚本?【英文标题】:How to debug remote python script? 【发布时间】:2017-03-27 22:19:26 【问题描述】:

我正在寻找一种方法来调试远程 python 脚本,而无需像the answer here 中那样进行任何设置

我设置了远程解释器,设置了调试配置,点击调试按钮,得到错误Event not found

ssh://myuser@my_ip:my_port/usr/local/bin/python -u /myuser/.pycharm_helpers/pydev/pydevd.py --multiproc --qt-support --client '0.0.0.0' --port 46994 --file /opt/my_work_dir/my_script.py
/: Event not found.

似乎 pyCharm 会处理所有调试设置 --multiproc --qt-support --client '0.0.0.0' --port 46994,但我的配置有误。

有没有办法在不使用pydevd.settrace('host', port=21000, stdoutToServer=True, stderrToServer=True) 和其他操作的情况下调试python 脚本?

【问题讨论】:

您解决了这个问题吗?我有类似的错误 【参考方案1】:

我经常将 vagrant 与 pycharm 一起使用,只要我将解释器设置为运行在 vagrant 框内的解释器,调试对我来说一直很有效。

如果您转到设置->项目->项目解释器,然后设置与远程解释器的连接,它通常会安装 pycharm-debug.egg 等,您可以针对此解释器调试运行项目并在 pycharm 中设置断点它会打破那些。

这是他们关于设置的文档https://www.jetbrains.com/help/pycharm/2016.1/configuring-remote-python-interpreters.html

【讨论】:

【参考方案2】:

我按照

部分所述设置了远程调试

使用远程解释器进行远程调试

(不是服务器!!)而且效果很好。

这里是链接:https://www.jetbrains.com/help/pycharm/2016.1/remote-debugging.html

你只需要设置remote interpreter(我使用ssh)然后设置你的运行配置。如果您需要进一步的帮助,请告诉我。

这是我在 PyCharm 中的运行配置:

【讨论】:

是的,这就是问题所在。我已经设置了一个远程解释器,当我运行调试配置时,我得到了 Event not found。 您正在尝试在远程服务器上调试一些 python 代码,对吧?那么,我的回答对你有帮助吗? 不,你的回答没有帮助,因为在我的问题中你可以看到:I use remove python interpreter(it mean ssh) 好吧,我不知道 remove python 解释器到底是什么意思。我在 PyCharm 中看不到这个选项。你为什么要那样做?为什么不使用 SSH?我用我的运行配置更新了我的答案。这可能有帮助吗?【参考方案3】:

我可以通过重新安装 PyCharm 来解决这个问题。 (#1 和 5 是可选的)

    导出要恢复的最低设置,例如键盘映射(文件 > 导出设置) 卸载当前的 PyCharm 安装新的 PyCharm 启动新的 PyCharm 并且在第一次启动时不要导入预先存在的设置 从旧的 PyCharm 导入您的设置(文件 > 导入设置)

我猜这发生在一些与环境相关的设置被搞砸时。 请注意,您需要记住远程解释器的设置,因为它会在重新安装时消失。

【讨论】:

【参考方案4】:

这可能与this 相同。如果您使用 csh 或 tcsh 等其他 shell,请使用 bash 作为登录 shell。

【讨论】:

以上是关于如何调试远程python脚本?的主要内容,如果未能解决你的问题,请参考以下文章

在远程服务器上运行本地 python 脚本

如何调试导致python崩溃的python脚本

多线程 python 脚本静默死亡 - 如何调试

如何在远程 Spark 集群上运行本地 Python 脚本?

如何检查是不是从脚本中设置了 python 调试选项

Python 如何写脚本?