正如今天在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或计算引擎上
任何可能出错的想法,或者如何调试调试器?
答案 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
可以解决问题。