Привет, я использую Ubuntu release 12.10 (квантовый) 32-разрядный с Linux Kernel 3.5.0-21-generic. Я пытаюсь заставить IPython History работать. Я установил его с помощью 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 features.
%quickref -> Quick reference.
help -> Python own help system.
object? -> Details about 'object', use 'object??' for extra details.
Поиск по предупреждению в первой строке, я нашел этот выпуск, поэтому я вернулся и установил следующее:
sudo apt-get install libsqlite0 libsqlite0-dev libsqlite3-0 libsqlite3-dev
а затем удалите и переустановите pysqlite, используя pip
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. Для хихиканья я добавил путь /usr/lib/python 2.7/lib-dynload к моему PYTHONPATH в терминале, а затем попытался снова импортировать 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. Может ли кто-нибудь указать мне в правильном направлении?