AVERTISSEMENT: IPython l'Histoire requiert SQLite, votre histoire ne sera pas enregistré

Salut, je suis à l'aide de publication Ubuntu 12.10 (quantal) 32 bits avec Linux Noyau 3.5.0-21-generic. Je vais essayer d'obtenir IPython de l'Histoire du travail. Je l'ai mis en place à l'aide de pythonbrew et un environnement virtuel. Là je utiliser pip pour installer IPython. Actuellement, lorsque je démarre IPython dans un terminal j'obtiens:

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.

De la recherche sur l'avertissement de la première ligne, j'ai trouvé ce rapport, je suis donc retourné et installé le suivant:

sudo apt-get install libsqlite0 libsqlite0-dev libsqlite3-0 libsqlite3-dev

puis supprimé et réinstallé pysqlite utilisation de pip

pip uninstall pysqlite
pip install pysqlite

Après que j'ai pensé que je voudrais vérifier l'installation par l'importation du module:

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

Alors maintenant, il semble que le fichier _sqlite3.donc ne peut pas être trouvé. C'est à ce moment que j'ai trouvé cette SORTE de question. Soit elle n'existe pas ou il n'est pas dans ma variable d'environnement PYTHONPATH. La recherche pour le fichier, j'obtiens:

$ 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

Si le fichier est là, mais quand j'ai regardé dans mon python path:

import sys
for p in sys.path:
    print p

aucun de ces chemins qui contiennent des _sqlite3.ainsi, ont été contenues dans mon PYTHONPATH. Pour rire, j'ai ajouté le chemin /usr/lib/python2.7/lib-dynload à mon PYTHONPATH dans un terminal, puis essayé de l'importer sqlite3 nouveau:

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

Uh oh. Maintenant, je suis complètement bloqué. Quelqu'un peut-il m'aider? J'ai aussi lu à quelques endroits que j'ai peut-être de reconstruire Python. Je n'ai aucune idée de comment faire cela dans pythonbrew. Quelqu'un peut me pointer dans la bonne direction?

Vous avez une bonne raison de l'utiliser Pythonbrew? Vous pouvez éviter ce genre de tracas en utilisant la copie de Python qui est déjà là. Vous pouvez toujours utiliser virtualenvs avec elle.
Salut Thomas K. Oui, j'utilise pythonbrew afin que je puisse garder un peu différentes versions de python sur mon ordinateur afin de tester le code que j'écris. Mon utilisation principale est pour vérifier la compatibilité entre Python 2.X et Python 3.X.
Bien que, à bien y penser, j'ai commencé à utiliser pythonbrew au travail parce que j'avais besoin d'une version plus récente de Python (2.7 je crois) pour que je puisse utiliser certains nouveaux multitraitement fonctions. Au travail, j'ai un vieux distro Ubuntu avec la version 2.6 de Python, et tout ce que j'ai lu en garde contre la tentative de mise à niveau de la version du système de Python. La mise à niveau de Ubuntu n'était pas une option, malheureusement.
Qui fait sens. Mais toutes les versions récentes d'Ubuntu devrait avoir 2.7, et vous pouvez facilement avoir Python 2 et 3 côte à côte (le dernier est juste python3).
Je suis d'accord. En fait, j'ai couru dans un deuxième problème maintenant. Il semble matplotlib de ne pas tirer des parcelles sur cette pythonbrew version de python parce que pyGTK n'est pas installé, mais pyGTK ne s'installe pas sous pip dans Ubuntu. On dirait que je suis de retour à la case départ. Je suis peu à peu se remercions de votre commentaire original. Peut-être que je peux en parler en me permettre de mettre à jour mon Ubuntu distro ou je devrais peut-être quelque chose de ramassage préemballés comme l'EPD. Pensées?

OriginalL'auteur PythonJin | 2013-01-05