Google App Engine在Python中出现“ImportError: No module named google.appengine.ext”

1 投票
4 回答
6787 浏览
提问于 2025-04-17 12:38

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

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

#!/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

有人能帮我解决这个问题吗?(抱歉,我是个新手!)提前谢谢大家。

4 个回答

0

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

我之前也遇到过同样的问题,因为我之前测试过gsutil/cloudauth/oauth2_plugin.py,而它还在PYTHONPATH里。

试着用下面的命令刷新一下PYTHONPATH:

PYTHONPATH=""
source ~/.bashrc
0

你是不是把 oauth2_plugin.py 文件移动(或者复制)到别的地方了?你看到的错误信息里显示的是 cloudauth/oauth2_plugin.py(这是和应用引擎一起用的插件),而不是 oauth2_plugin/oauth2_plugin.py(这可能是你真正想要的那个)。

你的 PYTHONPATH 是什么?

1

当你在运行或部署你的代码作为Google App Engine应用时,AE工具会确保你可以使用一些特定的模块(比如google.appengine.ext)。不过听起来你是想把这个脚本当作一个独立的程序来运行,也就是不在App Engine里面。如果是这样的话,你可能不需要用到appengine模块(具体情况还得看你更多的代码)。如果我没理解错,这段代码是你想在App Engine外面测试的代码,那你可以尝试把导入和引用缺失模块的部分注释掉。等你把这个搞定后,如果你准备好在App Engine下运行你的程序(无论是本地开发环境还是托管服务),再把那段代码取消注释。

撰写回答