Я использую python 2.7.3, который я вручную установил в свой домашний каталог, так как у меня нет root-доступа. В системе установлена 2.6.6, а мне очень нужна 2.7. Когда я запускаю приложение, SQLAlchemy выдает эту ошибку ImportError. Итак, я знаю, что pysqlite2 теперь sqlite3 в 2.7, поэтому я предполагаю, что он запутался в том, какая версия python установлена.
Вот трассировка:
[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
sqlite3
не скомпилирована,sqlalchemy
возвращается кpysqlite2
только в том случае, еслиsqlite3
не найден. Вам необходимо установить пакетsqlite-dev
или аналогичный. - person Martijn Pieters   schedule 11.01.2013sqlite-dev
, либо установить sqlite при компиляции? Можете ли вы уточнить, что вы подразумеваете под файлом разработки sqlite? Спасибо, парни. - person Ben Davis   schedule 11.01.2013-dev
или-devel
. Вы должны искать библиотеку с такими именами, какsqlite-dev
,libsqlite-dev
и т. д. Эти имена варьируются от дистрибутива к дистрибутиву. - person Kien Truong   schedule 11.01.2013