Python
Ubuntu

【ubuntu】ImportError: No module named '_sqlite3'とでたときの対処法【Python】

作ったツールをubuntuにcloneしたときにこんな風に怒られたのです。

原因

OS自体にsqlite3を使うためのライブラリが入っていないことが原因です。

pythonでsqliteをインストールしてても無駄です。
結局pythonもOSのライブラリを参照しているので。

解決方法

というわけで必要なものをインストールすればOKです

sudo apt-get install libsqlite3-dev libbz2-dev libncurses5-dev libgdbm-dev liblzma-dev libssl-dev tcl-dev tk-dev libreadline-dev

よし。これで大丈夫だと思ってしまいそうですが実はまだ駄目です。

ハマりどころなのですが、例えばpython3.4.3をインストールするときにすでにsqliteを使わない形でビルドされています。(インストール時にはライブラリが入っていないので自動でそうなるんだと思う)
っていうかインストールするときにメッセージがでているはず。

というわけで上記ライブラリをインストールしたら、pythonもインストールし直しましょう。

もし、すでに色んなものをpip install しているとしたら、

pip freeze > requirements.txt

で吐き出しておきます。

僕はこれで解決しました。

めでたしめでたしです。