我正在尝试在Google Cloud Shell中使用App Engine Remote API,但不断收到错误“ ImportError: No module named appengine.tools ”。
首先,我按照这些步骤将我的 Cloud Shell 设置为干净状态。
然后,我尝试使用以下命令启动 API shell:
/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py -s [myprojectID].appspot.com
首先,我收到错误“ -bash: /google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py: Permission denied ” 所以我导航到该文件并执行
sudo chmod +x remote_api_shell.py
然后,当我再次尝试该命令时,我得到了上面的 ImportError。
我查看了一些类似的线程(here)和(here),用户似乎报告说执行“sudo pip uninstall protobuf”解决了他们的问题,但这对我来说没有用。
另一个建议是将 App Engine SDK 添加到 PYTHONPATH,所以我尝试执行
export PYTHONPATH=/usr/bin/python2.7
export GAE_SDK_ROOT="/google/google-cloud-sdk/platform/google_appengine/"
export PYTHONPATH=${GAE_SDK_ROOT}:${PYTHONPATH}
但错误仍然存在。我认为这个问题反映在这里:
>>> import google
>>> print google.__path__
['/usr/local/lib/python2.7/dist-packages/google']
有没有办法快速解决这个问题,同时尽可能多地保留 Cloud Shell 的默认状态?由于 Cloud Shell 是短暂的,我想这个过程需要重复。
我已将我的应用程序配置为启用远程访问,但我认为我已经走得还不够远,无法解决这个问题。
所有 Gcloud 组件都是最新的,我想在我清理 Cloud Shell 状态时可以保证。
在命令前添加“python”或“python2”会导致相同的错误。
编辑添加完整的错误消息:
Traceback (most recent call last):
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py", line 29, in <module>
from google.appengine.tools import os_compat
ImportError: No module named appengine.tools