2010-05-21 100 views
3

我使用的是OS X 1.6雪豹,並且我成功安裝了PIL。我能夠打開終端並輸入導入圖像沒有任何錯誤。Python 2.6 + PIL + Google App Engine問題

但是,當使用應用程序引擎時,我得到圖像錯誤仍然說沒有安裝PIL。我想知道您是否有任何想法可以解決此問題。

馬修

回答

3

顯然,谷歌提供了PIL的google.appengine.api.images模塊中。你可以看到如何在App Engine Documentation - Using the Images Python API中使用它的例子。

+0

要在SDK中使用它們的圖像API,您必須自己安裝PIL:http://code.google.com/appengine/docs/python/images/installingPIL.html – 2010-05-21 20:07:57

+1

他已經完成*成功*上他的本地機器。您不需要將其安裝在應用程序引擎上。問題是他試圖以'Image'的形式訪問它,並且這不是GAE – 2010-05-21 20:10:14

-1

您是如何安裝PIL的?如果我沒有記錯,我必須通過MacPorts安裝它,以使App Engine SDK識別它已安裝。

您應該安裝Python 2.5並使用它,因爲這是App Engine使用的並且在本地進行2.6開發的Python版本,當您部署應用程序時可能會導致令人驚訝的問題。

+0

上的模塊命名,請遵循這些人的步驟進行乾淨的雪豹安裝。如果您在事實後安裝了Python,我不確定它會起作用。 http://proteus-tech.com/blog/cwt/install-pil-in-snow-leopard/ – mattwallace 2010-06-18 21:52:27

0

你不能在Appengine中使用PIL;它使用C擴展名,並且不會在沙盒環境中運行。您需要在本地計算機上安裝PIL以使用dev_appserver中的圖像API,因爲SDK版本的圖像API本身使用PIL,但這並不意味着您可以通過圖像API使用所有PIL;圖像API相當有限。

此外,使用Python 2.5進行開發是一個好主意,因爲生產環境使用版本2.5.2,並非所有的Python 2.6語法都可以在生產環境中使用(特別是「除了FooError以外」),以及開發服務器將測試你的代碼在生產中是否正常工作。

1

我有同樣的問題,發現在GoogleAppEngineLauncher |我需要將Python路徑設置爲/usr/local/bin/python2.5的首選項

之後,我開始工作。

0

David Scott說的其實是正確的。

我有錯誤吹跑,不能解決問題,無論我嘗試什麼補丁都無法解決問題。顯然,我的工作很簡單,只是更改C:\ python27_x64上找到的Python目錄,並使用Google App Engine定位pythonw.exe文件。

僅供參考,我在Windows上運行8.1


文件 「C:\ Program Files文件\谷歌\雲SDK \谷歌雲SDK \平臺\ google_appengine \ appcfg.py」,第127行,在文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ appcfg.py」,第123行,在run_file中 execfile(_PATHS。文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py」,第5399行,在 main(sys.argv) 在主 的文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py」中,第5390行result = AppCfgApp(argv).Run() 文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py」第2980行,運行 self 。動作(self) 文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py」,行5046,在中調用 return method ) self._UpdateWithParsedAppYaml(appyaml,self。)文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py」,第3793行,更新 。 basepath) 文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py」,行3814,_UpdateWithParsedAppYaml updatecheck.CheckForUpdates() File 「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ sdk_update_checker.py」,第243行,位於CheckForUpdates runtime = runtime)) 在發送 文件「C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appengine_rpc.py」中,第424行f = self .opener.open(req) 文件「C:\ Python27 \ lib \ urllib2.py」,第431行,打開 response = self._open(req,data) 文件「C:\ Python27 \ lib \ urllib2。文件「C:\ Python27 \ lib \ urllib2.py」,第409行,在_call_chain中 result = func(* args) 文件「C:\ Python27」,第449行,在_open '_open',req) \ lib \ urllib2.py「,行1240,在https_open context = self._context) TypeError:do_open()得到了一個意想不到的關鍵字參數'context' 2015-02-08 17:4 2:53(過程用代碼1退出)

您現在可以關閉此窗口。