2013-04-02 88 views
3

我剛剛升級到OS X上的App Engine Python開發服務器版本1.7.6,並且自升級以來,我在嘗試運行我時收到以下錯誤應用:升級到appengine dev服務器後導入simplejson時出錯1.7.6

ERROR 2013-04-02 04:05:14,268 wsgi.py:219] 
Traceback (most recent call last): 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 196, in Handle 
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler 
    handler = __import__(path[0]) 
    File "/Users/rmorlok/Dropbox/ryanroot/ryan-projects/Development/docalytics/online/main.py", line 13, in <module> 
    from google.appengine.tools import dev_appserver 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 62, in <module> 
    import simplejson 
ImportError: No module named simplejson 

我確信已安裝simplejson運行

sudo pip install simplejson 

其成功完成。如果我在控制檯上運行Python並導入它,但是當通過PyCharm或GoogleAppengineLaunch運行我的應用程序時,我可以成功導入simplejson,但出現上述錯誤。

有誰知道發生了什麼事?

+0

內部的python.exe問題似乎來自我正在導入dev_appserver本身的行(來自google.appengine.tools導入dev_appserver)以獲取某些實用程序。刪除該行似乎可以避免該問題。 –

+4

您現在正在運行python 2.7,因此您只需導入json而不是simplejson, –

+0

是的,在我的代碼中我實際上只是導入了json。導入simplejson實際上是在開發應用程序服務器的谷歌代碼中。 –

回答

0

此問題可能是由版本衝突或sys.path的錯誤配置引起的。 這裏有一些建議:

  • 請確保您只有一個版本的sdk安裝。您還可以安裝在/usr/local/google_appengine 2 versiones和 /Applications/GoogleAppEngineLauncher.app/
  • 後您重新安裝你的AppEngine上運行的AppEngine發射在 /Applications/GoogleAppEngineLauncher.app/默認情況下它會在/usr/local/google_appengine一個 符號鏈接在創建符號鏈接, 檢查權限,確保你的系統變量設置爲 需要,這個主題可能會有幫助 Configuring App Engine path for PyDev on Mac
  • 當使用pycharm請確保您已啓用appegine支持。
  • 如果您使用的是virtualenv,請確保appengine位於sys.path中。
  • 您可以嘗試添加$ APPENGINEPATH/lib目錄到sys.path中
  • 如果這個問題仍然存在,瞭解您使用的 dev_appserver或dev_appserver2哪個服務器,請參閱release notes

詳細信息如果沒有什麼幫助,你需要深入挖掘。對於我們的目的,我們在我們的項目中定製了啓動器的版本(以避免一些員工在標準庫中引用sdk存根)。這是http://pastebin.com/iU2PsGhE

環境設置是通過這些步驟完成(包括:在我們的例子和SDK):

  1. 找到AppEngine上的根目錄。
  2. Fid的DIR_PATH,這是由於某種原因,$ APPENGINEPATH/lib中/ IPADDR
  3. 導入第三方庫的正確版本位於$ APPENGINEPATH/lib中/

如果上面沒有什麼幫助隨意評論此回答,我們會找到解決方案。

1

SimpleJson已被重命名爲最新版本之一的Json。如果你沒有更新到最新版本的simplejson,你就不會有這個問題。所以,你可以恢復到一個較早的版本,或者你可以添加以下蟒蛇文件,使該問題上:

import json as simplejson 

也許谷歌已經在安裝的App Engine SDK的蟒蛇對版本進行了一些要求。

0

如果您使用eclipse,您必須在控制檯上輸入pip install simplejson,然後重置您的python解釋器。要做到這一點,你必須:

  1. 右擊你的PyDev項目,然後單擊propterties左窗格
  2. 選擇蟒蛇解釋器/語法點擊藍色的鏈接,說配置的解釋
  3. 點擊移除右上方,然後自動配置
  4. 如果自動配置沒有手動工作找到你的Python安裝文件夾