こんにちは私はLinuxカーネル3.5.0-21-genericでUbuntuリリース12.10(クォンタル)32ビットを使用しています。IPythonの履歴を機能させようとしています。pythonbrewと仮想環境を使用してセットアップしました。そこで、pipを使用してIPythonをインストールします。現在、ターミナルでIPythonを起動すると、次のようになります。
WARNING: IPython History requires SQLite, your history will not be saved
Python 2.7.3 (default, Nov 8 2012, 18:25:10)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
最初の行の警告を検索したところ、この問題レポートが見つかったので、戻って次のものをインストールしました。
sudo apt-get install libsqlite0 libsqlite0-dev libsqlite3-0 libsqlite3-dev
次に、pipを使用してpysqliteを削除して再インストールしました
pip uninstall pysqlite
pip install pysqlite
その後、モジュールをインポートしてインストールを確認しようと思いました。
Python 2.7.3 (default, Nov 8 2012, 18:25:10)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
そのため、ファイル_sqlite3.soが見つからないようです。その時、私はこのSOの質問を見つけました。存在しないか、PYTHONPATH環境変数にありません。ファイルを検索すると、次のようになります。
$ locate _sqlite3.so
/home/me/Desktop/.dropbox-dist/_sqlite3.so
/home/me/epd/lib/python2.7/lib-dynload/_sqlite3.so
/usr/lib/python2.7/lib-dynload/_sqlite3.so
したがって、ファイルはそこにありますが、Pythonパスを調べたところ:
import sys
for p in sys.path:
print p
_sqlite3.soを含む上記のパスはどれも私のPYTHONPATHに含まれていませんでした。笑いの場合は、ターミナルのPYTHONPATHにパス/usr/lib/python2.7/lib-dynloadを追加してから、sqlite3を再度インポートしようとしました。
Python 2.7.3 (default, Nov 8 2012, 18:25:10)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append("/usr/lib/python2.7/lib-dynload")
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: /usr/lib/python2.7/lib-dynload/_sqlite3.so: undefined symbol: PyUnicodeUCS4_DecodeUTF8
ええとああ。今、私は完全に立ち往生しています。誰かが私を助けることができますか?また、Pythonを再構築しなければならない可能性があることをいくつかの場所で読みました。pythonbrewでこれを行う方法がわかりません。誰かが私を正しい方向に向けることができますか?