Python 上的 Google App Engine "ImportError: No module named google.appengine.ext"



我正在尝试为谷歌云设置一个python源文件。我在我的MAC OS 10.6上安装了一个GSUtil,并按照页面上的说明设置了文件的路径将此命令(export PYTHONPATH=${PYTHON PATH}:$HOME/gsutil/boto:$HOME/gsutil)添加到主目录下的.bash_profile中。

然后,我运行了以下代码:

#!/usr/bin/python
import StringIO
import os
import shutil
import tempfile
import time
from oauth2_plugin import oauth2_plugin
import boto
# URI scheme for Google Cloud Storage.
GOOGLE_STORAGE = 'gs'
# URI scheme for accessing local files.
LOCAL_FILE = 'file'

而且,编译器给了我一个错误,说

>>> [evaluate gs.py]
Traceback (most recent call last):
  File "/Volumes/WingIDE-101-4.0.0/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 8, in <module>
  File "/Users/lsangin/oauth2_plugin.py", line 18, in <module>
  File "/Users/lsangin/google_appengine/cloudauth/oauth2client/appengine.py", line 24, in <module>
    from google.appengine.ext import db
ImportError: No module named google.appengine.ext
>>> from google.appengine.ext

有人能帮我解决这个问题吗?(对不起,我是个新手!)提前谢谢。

当您将代码作为Google App Engine应用程序运行或部署时,AE工具会确保您可以访问特定于AE的模块(例如Google.appengine.ext),但听起来您试图将此脚本作为应用程序引擎之外的独立程序运行。如果是,您可能不需要appengine模块(如果没有看到更多的代码,很难说是肯定的)。如果我是正确的,并且这是一个在AE之外运行的小测试代码,请尝试注释掉导入和对缺失模块的引用。一旦你开始工作,如果/当你准备在应用程序引擎(本地开发环境或托管服务)下尝试你的程序时,请取消注释该代码。

您是否将oauth2_plugin.py移动(或复制)到其他位置?堆栈跟踪中显示的是cloudauth/oauth2_plugin.py(它是与应用程序引擎一起工作的插件),而不是oauth2_plugin/oauth2_plugin.py(它可能是您想要的)。

你的完整PYTHONPATH是什么?

听起来你导入了错误的oauth2_plugin,因为gsutil/oauth2_plugin中的那个不依赖于应用程序引擎。

我遇到了同样的问题,因为我之前用gsutil/cloudauth/oauth2_plugin.py进行了测试,它仍然在PYTHONPATH中。

尝试用刷新PYTHONPATH

PYTHONPATH=""
source ~/.bashrc

我也遇到了同样的问题——我通过在PYTHONPATH中添加一个目录来解决它:https://stackoverflow.com/a/19019234/1741654

最新更新