【问题标题】:Syntax error when trying to run debug configuration for remote interpretor from PyCharm尝试从 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

标签: django google-app-engine vagrant pycharm


【解决方案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 启动器脚本来设置环境。在参数周围添加引号 ("$@") 为我解决了这个问题!
猜你喜欢
  • 2020-11-04
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
  • 2015-02-21
  • 2022-07-07
  • 2021-07-29
  • 1970-01-01
  • 2022-06-15
相关资源
最近更新 更多