2013-04-03 107 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) –