2013-04-03 77 views
11

乳宁这个代码后,我发现导入错误: -蟒蛇导入错误“无模块命名appengine.ext”

from google.appengine.ext import webapp 
from google.appengine.ext.webapp.util import run_wsgi_app 

class MainPage(webapp.RequestHandler): 
    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.out.write('Hello, webapp World!') 

application = webapp.WSGIApplication([('/', MainPage)],debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 

如何使用google.apengine.ext

+0

你是如何安装它的?检查它是否在你的PYTHONPATH上。 – StoryTeller

+0

如果您试图在交互式Python环境中运行它,您将不得不修改sys.path,如下面的注释中所述。如果您打算提供Web应用程序,那么您应该使用dev_appserver.py运行您的应用程序。命令将是 /platform/google_appengine/dev_appserver.py app.yaml –

+0

我不知道你为什么删除了我的答案。我有完全相同的错误,并有文件google.py导致这个问题。所以对我来说就是答案。可能不是你的确切案例的答案,但它是我的情况的答案。还有,我的错误信息完全一样:“python import error”没有名为appengine.ext的模块“,所以请将我的答案返回给我。 – makkasi

回答

9

它看起来像在App Engine没有安装SDK,或者至少Python运行时无法找到它。

读,并按照指示在这里:https://cloud.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python

他们会告诉你,如何安装的App Engine SDK为Python。

+7

嘿,我按照你指定的链接指示,仍然有错误。 –

+2

@NamitaMaharanwar我通过终端(我使用Mac)运行以下命令:'export PYTHONPATH =“$ PYTHONPATH:/ usr/local/google_appengine:/ usr/local/google_appengine/lib /:/ usr/local/google_appengine/lib/yaml /“'你必须配置库的路径 –

+0

是的,设置PYTHONPATH在我跟着的步骤中丢失了完成 –

5

尝试:

import google 
print google.__path__ 

,看看究竟要导入什么。

+1

>>> import google Traceback(最近呼叫的最后一个): 文件“”,第1行,in 导入错误:没有模块名为谷歌 >>>打印谷歌.__ path__ 回溯(最近通话最后一个): 文件“”,1号线,在 NameError:名字“谷歌”是没有定义 – TSR

5
import sys 
sys.path.insert(1, '/Users/<username>/google-cloud-sdk/platform/google_appengine') 
sys.path.insert(1, '/Users/<username>/google-cloud-sdk/platform/google_appengine/lib/yaml/lib') 
sys.path.insert(1, 'lib') 

if 'google' in sys.modules: 
    del sys.modules['google'] 

这解决了问题,对我来说

+0

你在哪里把这个代码准确?它在'appengine_config.py'文件或其他地方吗? – Y2H

+0

这段代码是放在你主要执行方法的开始,它是添加对GAE包的引用。这也是一个旧代码,自从我上次编写它以来,事情已经发生了变化。 – varun

1

我有同样的问题,因为我PIP下载和安装SDK之前安装gcloud。 pip安装创建了一个不包含appengine子模块(可在SDK文件夹中找到)的python软件包google。我卸载了gcloud和相关软件包。然后,只需点安装谷歌云-bigquery这是我需要从gcloud唯一的软件包。现在一切正常。

0

检查您是否在同一个包中命名了一些文件google.py :),因为这会影响google.appengine.ext的导入。我有同样的错误:

python import error “No module named appengine.ext” 

并删除文件解决了问题。

+2

这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 - [来自评论](/ review/low-quality-posts/16810750) –