2013年11月7日木曜日

Google App Engine の dev_appserver起動時にsqliteでエラーがでる場合の対処法

久しぶりにMacOSでGo言語版のGoogle App Engineを触ってみたら、sqliteでエラーがでしまったので、なんとかした時のメモ

ちなみに環境は、下記の通り

  • MacOS X Marveric
  • go-app-engine-64(home brewでインストール)
  • sqlite 3.8.1 (home brewでインストール)
  • python 2.7.5 (home brewでインストール)

 

まずは、実行してみると

$ dev_appserver.py myapp
Traceback (most recent call last):
File "/usr/local/bin/dev_appserver.py", line 197, in <module>
_run_file(__file__, globals())
File "/usr/local/bin/dev_appserver.py", line 193, in _run_file
execfile(script_path, globals_)
File "/usr/local/Cellar/go-app-engine-64/1.8.7/share/go-app-engine-64/google/appengine/tools/devappserver2/devappserver2.py", line 33, in <module>
from google.appengine.tools.devappserver2 import api_server
File "/usr/local/Cellar/go-app-engine-64/1.8.7/share/go-app-engine-64/google/appengine/tools/devappserver2/api_server.py", line 50, in <module>
from google.appengine.api.logservice import logservice_stub
File "/usr/local/Cellar/go-app-engine-64/1.8.7/share/go-app-engine-64/google/appengine/api/logservice/logservice_stub.py", line 22, in <module>
import sqlite3
File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: dlopen(/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_sqlite3.so, 2): Library not loaded: /usr/local/opt/sqlite/lib/libsqlite3.0.8.6.dylib
Referenced from: /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_sqlite3.so
Reason: image not found

 

てな感じに、『sqliteのイメージが見つかんないよ』と言われてしまう。

ということで、おいでませStackOverflow!

エラーメッセージで調べてみると、それっぽい記事を発見

http://stackoverflow.com/questions/15595473/python-import-sqlite-error

 

この記事のとおりに試してみます。

まずは、HomeBrewでインストールしたSqliteとPythonをアンインストールします。

brew rm sqlite python

 

そして、再度Pythonのみをインストールします

brew install python

 

pythonのインストール時に、合わせてSqliteも入るため、そっちを使うようにするようです。

 

とりあえず、これでうまくdev_appserver.pyが動くはずです。

自分の環境では、app.yamlの構文エラーで失敗しましたが・・・。

0 件のコメント:

コメントを投稿