Python flask leveldb lock

問: leveldb.init() 後,只要啟動這行: app.run(host='0.0.0.0', debug=True) 就會在編譯時出現:leveldb.LevelDBError: IO error: lock xxxx.db/LOCK: Resource temporarily unavailable 感謝同學的指導: 提供一些遇到這個問題嘗試過的方式,當app.run的debug mode有啟用時,表示他會在你異動程式後自動做Reload(werkzeug套件庫的一個方法,Reloader會去restart你的程式)以及偵錯,所以如果你把leveldb.init()寫在程式一進來就會執行的地方那實際上這個leveldb.init()會被呼叫兩次(所以拋錯 IO Error)。 方式一:把debug mode關掉(False),不太建議 方式二:把leveldb.init()這個動作放到route('/')內進行 方式三:使用@app.before_first_request,將levedb.init()寫在這裡面,他會在執行第一個request之前先執行

Advertisements

leveldb install for MAC

在 Mac 的環境中安裝 leveldb 出了一點怪事,安裝完 leveldb 後,明明 leveldb 已經顯示正常安裝,也有讀出安裝的版本號,但就是無法 import。。。 將 Paul Chao 老師協助我解決的步驟描述如下: Run in Terminal app: 1: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null 2: brew install leveldb 3: pip3 install leveldb PS:leveldb 和 XCode 有依存關係,XCode 將會被要求安裝。 其他同學發現的問題: Tom Chen 1. 有時候會無法 import leveldb. 只要把 leveldb.pyd 除了虛擬環境, 多 copy 一份到你的Python 安裝目錄: … Continue reading leveldb install for MAC