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?
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
Vous devez vous connecter pour publier un commentaire.
C'est correct. SQLite est une partie de la bibliothèque standard,
et est construit lors de la compilation de Python. Il y a quelques facultatif pièces
de la bibliothèque standard, qui Python il suffit de sauter (avec peu d'avertissement, malheureusement)
si les dépendances sont manquantes au moment de la construction, et sqlite est un de ces.
Vous devriez être en mesure de simplement installer
libsqlite3-dev
,puis reconstruire Python et vous devriez être en jeu.
Gardez un œil sur l'accumulation des messages,
comme ils le font rapport des modules dont ils sautent en raison de dépendances manquantes.
OriginalL'auteur minrk
Grâce à minrk pour me pointer dans la bonne direction. Tout ce que j'avais à faire était de reconstruire python. J'ai décrit les étapes ci-dessous pour ceux qui sont à l'aide de pythonbrew. Notez que j'ai déjà installé le
libsqlite3-dev
paquet dans la section question.D'abord, avec la bonne version de python et de l'environnement virtuel chargé d'exécuter la commande:
Cela nous donne un fichier texte la liste de tous les pip des paquets qui ont été installés dans l'environnement virtuel pour cette version de python dans pythonbrew. Puis on enlève la version de python à partir de pythonbrew et de le réinstaller (c'est la "reconstruction python" de l'étape):
Après cela, nous avons à passer à nouvellement installé une version de python 2.7.3 et de créer un nouvel environnement virtuel (que j'ai appelé "sci"):
Idéalement, vous devriez être en mesure d'exécuter la commande:
et selon cette pip réinstallez tous les modules que vous avez eu dans l'environnement virtuel avant de nous ridiculiser que la version de python (2.7.3). Il n'a pas de travail pour moi pour quelque raison que ce soit, donc je l'ai installé manuellement tous les modules à l'aide de pip individualité.
et IPython histoire fonctionne!
OriginalL'auteur PythonJin
Ce qui a fonctionné pour moi (à l'aide d'osx + homebrew + brassée python):
Et vous devriez être bon d'aller.
OriginalL'auteur Bijan
Vous devez reconstruire votre python avec le support sqlite
Recréer votre environnement virtuel et vous devriez être bon d'aller
OriginalL'auteur Most Wanted