我想用一個庫(記憶),它使用的memcache這樣的庫:import memcache
如何使用導入內存緩存在App Engine中
現在,在App Engine上,內存緩存必須導入這樣的:from google.appengine.api import memcache
所以我用dev_appserver.py運行時出現這個錯誤:ImportError: No module named memcache
我可以在不修改它的情況下使用這個庫嗎?
我想用一個庫(記憶),它使用的memcache這樣的庫:import memcache
如何使用導入內存緩存在App Engine中
現在,在App Engine上,內存緩存必須導入這樣的:from google.appengine.api import memcache
所以我用dev_appserver.py運行時出現這個錯誤:ImportError: No module named memcache
我可以在不修改它的情況下使用這個庫嗎?
簡短的回答是:即使您可以使用dev_appserver.py
讓本模塊在本地實例上工作,但由於Google控制着服務器環境,因此您只能在將代碼上傳到其託管服務時使用其受支持的模塊。請參閱here.
長的回答是,爲了import memcache
,您需要安裝memcache
軟件包。如果您想嘗試使用Google提供的memcache模塊,則可以將其更改爲from google.appengine.api import memcache
,但Google的memcache可能與標記的Python memcache軟件包存儲的用途存在實質性和重大差異,並且可能會導致錯誤或無法使用所有。此外,即使您確實記得工作,您也無法在Google服務器上使用它,因爲它不是受支持的第三方庫(請參閱上文)。
也許嘗試導入記憶之前,需要手動改變與GAE的API模塊路徑的sys.path:
sys.path.insert(0, '/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/')
不知道有記憶,只是
import memcache
作品。
假設App Engine的內存緩存是memcached的庫相同。所以,如何建立與memcache.py模塊:
from google.appengine.api.memcache import *
然後記憶將能夠使用memcache.set(),內存緩存導入memcache後.get()等。
爲了進一步澄清jayhendren的答案 - 如果你打算使用GAE的內存緩存服務,你必須使用
從google.appengine.api進口的memcache
你不能用一個開源的內存緩存庫。唯一可以使用標準python memcache lib的場景是,如果您在某處(例如,在計算引擎上)運行自己的memcache服務,並且您想通過套接字連接到該服務。我猜你沒有那樣做。
假設您想要使用GAE內建的memcache服務:由於GAE的memcache lib和標準pycache memcache庫定義的API之間存在差異,因此您必須對記憶進行一些較小的更改,以便能夠成功通話到GAE memcache庫。大多數情況下,儘管面向功能的開發人員與標準的Python庫相同。如果你得到它的工作,讓我們知道!