尝试从 PyCharm 运行远程解释器的调试配置时出现语法错误

Posted

技术标签:

【中文标题】尝试从 PyCharm 运行远程解释器的调试配置时出现语法错误【英文标题】:Syntax error when trying to run debug configuration for remote interpretor from PyCharm 【发布时间】:2016-02-05 09:28:31 【问题描述】:

我正在设置一个 Google App Engine Django 项目以在 Vagrant 环境中运行,以便轻松设置/拆卸系统,并使用 PyCharm 作为这一切的 IDE。我能够在远程机器上使用 PyCharm 成功让服务器运行,但如果我尝试使用远程调试器启动调试会话,PyCharm 会给我一个无法描述的错误:

运行 webapp 时出错:无法运行远程 python 解释器:无法从输出中获取远程套接字,stderr 文件“”,第 1 行
    进口
         ^
SyntaxError: 无效语法

我会尽可能多地包含有关设置的信息:

Windows 10 主机,Ubuntu 14.04 来宾 Python 是 2.7.10 版 /home/vagrant/www/shell/python-su.sh 设置为 python 解释器。只需将参数传递给 sudo /usr/bin/python $@ 以使其在 vagrant/GAE 中工作 PyCharm 中的 GAE 目录设置为 /home/vagrant/google_appengine/ 以使其在远程计算机上工作 这是我用于启动调试客户端的 PyCharm 配置设置的屏幕截图:

所有这些都与我为运行配置所做的相匹配,并且效果很好。只是调试配置抛出此错误。

【问题讨论】:

第一次调试时调试控制台中显示的完整命令是什么?这可能会给您一个提示,说明哪些工作不正常。 当我点击调试时,控制台打开并显示它正在运行的命令。你有没有看到这样的snag.gy/nHzCc.jpg @JoshTriiJohnston 调试对我来说是灰色的,我可以显示该窗口(可能是因为它无法调试?)但是 Python 控制台确实显示了更多,我将使用该信息进行更新 @JoshTriiJohnston 啊,没关系,看起来这可能无关紧要。看起来控制台由于某种原因没有选择 python 路径,所以它抱怨找不到 django 【参考方案1】:

从 PyCharm 的帮助文档中,我发现 this article 详细说明了如何打开对 PyCharm 日志文件的更多日志记录。将此添加到位于 PyCharm Program Files 目录的 /bin/ 目录中的 log.xml 文件中:

<category name="#com.jetbrains.plugins.webDeployment">
    <priority value="DEBUG"/>
</category>

查看日志文件显示了它试图运行的命令,我可以通过 SSH 进入机器来运行它自己运行它。从那里,我能够确定它来自我的 sudo python 文件。我必须将$@ 用引号括起来才能使其正常工作。运行是有效的,因为论点足够简单,以至于不引用它并不重要。最终的 python sudo shell 文件如下所示:

sudo /usr/bin/python "$@"

【讨论】:

这有帮助。在 centos scl 环境中包装 python 解释器时,我遇到了同样的问题。正确的调用是:source scl_source enable rh-python34 && python "$@" 我正在运行自定义 python 启动器脚本来设置环境。在参数周围添加引号 ("$@") 为我解决了这个问题!

以上是关于尝试从 PyCharm 运行远程解释器的调试配置时出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章

PyCharm 上的远程调试

Pycharm配置远程调试

pycharm远程调试或运行代码

将 argparse dict 形字符串从 pycharm 传递到远程解释器(本地赢,远程 nix)

Pycharm教程PyCharm 配置 Python 项目运行和调试

pycharm远程调试服务器代码