Google Cloud Debugger不适用于Python AppEngine托管虚拟机

时间:2015-12-08 08:46:52

标签: google-compute-engine google-app-engine-python managed-vm google-cloud-debugger

正如今天在Production Troubleshooting with Cloud Debugger now available for Python所宣布的,据说我现在可以使用Python Debugger。

我正在GCE图像上运行AppEngine托管虚拟机,因此请遵循Setting up Python on Compute Engine指南。我修改了我的Dockerfile以添加pip install google-python-cloud-debugger(我也尝试将库直接安装到我的app / lib中,它包含在我的sys.path中):

FROM gcr.io/google_appengine/python-compat
RUN pip install google-python-cloud-debugger
ADD . /app

然后我修改了我的main.py来启用调试器:

try:
  import googleclouddebugger
  googleclouddebugger.AttachDebugger()
except ImportError:
  pass

不幸的是,当我提交代码,运行gcloud preview app gen-repo-info-file并推送它时,我无法使用调试器。当我转到https://console.developers.google.com/debug时,它会在右侧加载我的github存储库,但是我在左侧导航区域中看到一条错误消息:

  

调试不可用。您可以调试运行的Java应用程序   在App Engine或计算引擎上

任何可能出错的想法,或者如何调试调试器?

3 个答案:

答案 0 :(得分:1)

虽然另一个线程确实提供了很多机会来遵循调试中常见的最佳实践,但解决方案比我们想象的要简单得多。您可能看到的错误可能是因为使用python的托管虚拟机尚不是支持云调试器的平台according to the documentation

然而,随着Cloud Debugger服务的发展,以及Cloud Debugger与python的完全合并just announced on the 7th,这肯定会发生变化。

如果您发现缺少某些内容,请随时在Cloud Platform Public Issue Tracker中提交功能请求,并希望告诉我们您和其他可能会对此问题提出异议的人的兴趣。

答案 1 :(得分:0)

编辑:虽然这个答案的主题包含有用的调试步骤,但问题的根本原因在我的其他发布的答案中有解释。

这可能发生了两件事:

首先,您作为普通用户运行的pip命令想要访问系统安装位置,并且在没有root权限的情况下失败。试试sudo pip install...pip install -t lib/ google-python-cloud-debugger

发生的第二件事是你的代码正在捕获一个ImportError而只是pass。在我生命中,我曾经看过这样的建筑作为蟒蛇演说家,老实说,如果我看过一个,它就是一只脚霰弹枪。 pass可以用于什么目的?如果采取这种预防措施,错误日志会快速显示问题。

答案 2 :(得分:0)

检查Python Cloud Debugger是否已正确安装的最简单方法是尝试在Python交互式控制台中导入它:

docker run -i -t cdbgtest bin/bash
python
import googleclouddebugger
print googleclouddebugger.__version__

我猜你的情况pip install google-python-cloud-debugger失败了。如果是这种情况,可能是由于过时的pip。使用pip安装sudo easy_install pip可以解决问题。