2013-10-06 36 views
2

我想用一個庫(記憶),它使用的memcache這樣的庫:import memcache如何使用導入內存緩存在App Engine中

現在,在App Engine上,內存緩存必須導入這樣的:from google.appengine.api import memcache

所以我用dev_appserver.py運行時出現這個錯誤:ImportError: No module named memcache

我可以在不修改它的情況下使用這個庫嗎?

回答

2

簡短的回答是:即使您可以使用dev_appserver.py讓本模塊在本地實例上工作,但由於Google控制着服務器環境,因此您只能在將代碼上傳到其託管服務時使用其受支持的模塊。請參閱here.

長的回答是,爲了import memcache,您需要安裝memcache軟件包。如果您想嘗試使用Google提供的memcache模塊,則可以將其更改爲from google.appengine.api import memcache,但Google的memcache可能與標記的Python memcache軟件包存儲的用途存在實質性和重大差異,並且可能會導致錯誤或無法使用所有。此外,即使您確實記得工作,您也無法在Google服務器上使用它,因爲它不是受支持的第三方庫(請參閱上文)。

1

也許嘗試導入記憶之前,需要手動改變與GAE的API模塊路徑的sys.path:

sys.path.insert(0, '/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/') 

不知道有記憶,只是

import memcache 

作品。

2

假設App Engine的內存緩存是memcached的庫相同。所以,如何建立與memcache.py模塊:

from google.appengine.api.memcache import * 

然後記憶將能夠使用memcache.set(),內存緩存導入memcache後.get()等。

2

爲了進一步澄清jayhendren的答案 - 如果你打算使用GAE的內存緩存服務,你必須使用

從google.appengine.api進口的memcache

你不能用一個開源的內存緩存庫。唯一可以使用標準python memcache lib的場景是,如果您在某處(例如,在計算引擎上)運行自己的memcache服務,並且您想通過套接字連接到該服務。我猜你沒有那樣做。

假設您想要使用GAE內建的memcache服務:由於GAE的memcache lib和標準pycache memcache庫定義的API之間存在差異,因此您必須對記憶進行一些較小的更改,以便能夠成功通話到GAE memcache庫。大多數情況下,儘管面向功能的開發人員與標準的Python庫相同。如果你得到它的工作,讓我們知道!

相關問題