Python: SQLAlchemy ImportError: No module named-pysqlite2
Ich bin mit python 2.7.3, die ich manuell installiert in meinem home-Verzeichnis, da ich nicht über root-Zugriff. 2.6.6 installiert ist auf dem system, aber ich wirklich brauchen, 2.7. Wenn ich die app starte, SQLAlchemy wirft diese ImportError. Also ich weiß, dass pysqlite2 ist nun sqlite3 in 2.7, so dass ich vermute, es ist verwirrend, welche version von python installiert ist.
Hier ist ein traceback:
[11/Jan/2013:16:04:57] ENGINE Listening for SIGHUP.
[11/Jan/2013:16:04:57] ENGINE Listening for SIGTERM.
[11/Jan/2013:16:04:57] ENGINE Listening for SIGUSR1.
[11/Jan/2013:16:04:57] ENGINE Bus STARTING
[11/Jan/2013:16:04:57] ENGINE Starting up DB access
[11/Jan/2013:16:04:57] ENGINE Error in 'start' listener <bound method SAEnginePlugin.start of <giraffe.sa.saplugin.SAEnginePlugin object at 0x239c6d0>>
Traceback (most recent call last):
File "/assetuser/lib/python2.7/site-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/process/wspbus.py", line 197, in publish
output.append(listener(*args, **kwargs))
File "/assetuser/giraffe_server/giraffe/sa/saplugin.py", line 35, in start
self.sa_engine = create_engine('sqlite:///giraffe.db', echo=False)
File "/assetuser/lib/python2.7/site-packages/sqlalchemy/engine/__init__.py", line 338, in create_engine
return strategy.create(*args, **kwargs)
File "/assetuser/lib/python2.7/site-packages/sqlalchemy/engine/strategies.py", line 64, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/assetuser/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py", line 286, in dbapi
raise e
ImportError: No module named pysqlite2
CherryPy Checker:
dir is an absolute path, even though a root is provided.
section: [/Project]
root: '/assetuser/giraffe_server/static'
dir: '/assetuser/Project'
[11/Jan/2013:16:04:57] ENGINE Started monitor thread 'Autoreloader'.
[11/Jan/2013:16:04:57] ENGINE Started monitor thread '_TimeoutMonitor'.
[11/Jan/2013:16:04:57] ENGINE Serving on 0.0.0.0:8080
[11/Jan/2013:16:04:57] ENGINE Shutting down due to error in start listener:
Traceback (most recent call last):
File "/assetuser/lib/python2.7/site-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/process/wspbus.py", line 235, in start
self.publish('start')
File "/assetuser/lib/python2.7/site-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/process/wspbus.py", line 215, in publish
raise exc
ChannelFailures: ImportError('No module named pysqlite2',)
[11/Jan/2013:16:04:57] ENGINE Bus STOPPING
[11/Jan/2013:16:04:57] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('0.0.0.0', 8080)) shut down
[11/Jan/2013:16:04:57] ENGINE Stopped thread 'Autoreloader'.
[11/Jan/2013:16:04:57] ENGINE Stopped thread '_TimeoutMonitor'.
[11/Jan/2013:16:04:57] ENGINE Shutting down DB access
[11/Jan/2013:16:04:57] ENGINE Bus STOPPED
[11/Jan/2013:16:04:57] ENGINE Bus EXITING
[11/Jan/2013:16:04:57] ENGINE Bus EXITED
- Du könntest auch den vollständigen traceback zu vermeiden, dass uns erraten. Meine Vermutung: die
sqlite3
Bibliothek wird nicht kompiliert,sqlalchemy
nur fällt zurück aufpysqlite2
wennsqlite3
nicht gefunden. Sie müssen diesqlite-dev
Paket oder gleichwertig installiert. - Ja, Sie müssen sqlite development-Datei installiert, wenn Sie kompilieren von python, sonst sqlite3 nicht verfügbar.
- Okay, das macht Sinn. Also entweder ich kann installieren Sie die
sqlite-dev
python-Paket, oder habe sqlite installiert, wenn ich kompilieren? Können Sie näher erläutern, was du damit meinst sqlite development-Datei? Danke Jungs. - Einige linux-Distribution separate Bibliotheken in die header-Pakete und die Bibliothek von Binär-Paketen. Die Kopfzeilen sind nur erforderlich, wenn Sie kompilieren Pakete, damit Sie nicht immer installiert. Diese header-Pakete sind oft suffix mit
-dev
oder-devel
. Sollten Sie sich für eine Bibliothek mit Namen wiesqlite-dev
,libsqlite-dev
etc... Dieser name variiert von Distribution zu Distribution. - Okay, so bedeutet das, dass die Bibliothek-Binärdateien für sqlite bereits installiert sind und ich brauche nur den Header, so dass diese Bibliotheken können verwendet werden? Ich bin auch dabei, habe das problem, dass ich nicht die Wurzel. Beim kompilieren, welche Pfade verwendet werden, um zu versuchen und suchen Sie den Header?
- Für alle anderen, die vielleicht ein ähnliches problem: http://stackoverflow.com/questions/1462565/what-are-sqlite-development-headers-and-how-to-install-them
- Schreiben Sie eine aswer auf deine eigene Frage und dann zu akzeptieren, so wird jedermann wissen, wie das problem zu beheben. Ihr Kommentar ist ausreichend, aber lassen Sie die Dinge sauber zu halten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für alle anderen, die vielleicht ein ähnliches problem: Was sind sqlite development-Header, und wie man Sie installiert?