我尝试在Google Cloud Shell中使用App Engine Remote API,但一直收到错误消息"ImportError: No module named appengine.tools“。
首先,我遵循these steps将我的Cloud Shell设置为一个干净的状态。
然后,我尝试使用以下命令启动API shell:
/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py -s [myprojectID].appspot.com
首先,我收到错误消息“Permission -bash: /google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py:-bash”,因此我导航到该文件并执行
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
发布于 2018-08-04 02:57:33
正如Dan Cornilescu所建议的,问题的根本原因似乎是我执行了错误的文件。在再次清除Cloud Shell状态之后,我执行了:
python /google/google-cloud-sdk/platform/google_appengine/remote_api_shell.py -s [myprojectID].appspot.com
而且它起作用了
https://stackoverflow.com/questions/51677585
复制相似问题