On Saturday, October 22, 2011 at 7:03:59 AM UTC-4, João Silva wrote: > > Hello everyone, > > I'm having a problem connecting to SQLite database files with > SQLAlchemy. :memory: databases work just fine, but whenever I'm trying > to access a file, the following happens: > > > Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit > (AMD64)] on win > 32 > Type "help", "copyright", "credits" or "license" for more information. > >>> from sqlalchemy import create_engine > >>> import os.path > >>> os.path.exists('test.db') > False > >>> engine = create_engine('sqlite:///test.db') > >>> engine.connect > <bound method Engine.connect of Engine(sqlite:///test.db)> > >>> engine.connect() > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\base.py", line 2310, in connect > return self._connection_cls(self, **kwargs) > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\base.py", line 872, in __init__ > self.__connection = connection or engine.raw_connection() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\base.py", line 2396, in raw_connection > return self.pool.unique_connection() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 169, in unique_connection > return _ConnectionFairy(self).checkout() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 370, in __init__ > rec = self._connection_record = pool._do_get() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 757, in _do_get > return self._create_connection() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 174, in _create_connection > return _ConnectionRecord(self) > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 255, in __init__ > self.connection = self.__connect() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 315, in __connect > connection = self.__pool._creator() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\strategies.py", line 80, in connect > return dialect.connect(*cargs, **cparams) > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\default.py", line 275, in connect > return self.dbapi.connect(*cargs, **cparams) > sqlalchemy.exc.OperationalError: (OperationalError) unable to open > database file > None None > > > The same happens after having created the database using the sqlite3 > module and then trying to connect to it via SQLAlchemy. > > >>> import sqlite3 > >>> conn = sqlite3.connect('test.db') > >>> conn.execute('create table bla(id int primary key);') > <sqlite3.Cursor object at 0x0000000002FA62D0> > >>> conn.close() > >>> os.path.exists('test.db') > True > >>> engine = create_engine('sqlite:///test.db') > >>> engine.connect() > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\base.py", line 2310, in connect > return self._connection_cls(self, **kwargs) > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\base.py", line 872, in __init__ > self.__connection = connection or engine.raw_connection() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\base.py", line 2396, in raw_connection > return self.pool.unique_connection() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 169, in unique_connection > return _ConnectionFairy(self).checkout() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 370, in __init__ > rec = self._connection_record = pool._do_get() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 757, in _do_get > return self._create_connection() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 174, in _create_connection > return _ConnectionRecord(self) > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 255, in __init__ > self.connection = self.__connect() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\pool > .py", line 315, in __connect > connection = self.__pool._creator() > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\strategies.py", line 80, in connect > return dialect.connect(*cargs, **cparams) > File > "C:\Python27\lib\site-packages\sqlalchemy-0.7.2-py2.7.egg\sqlalchemy\engi > ne\default.py", line 275, in connect > return self.dbapi.connect(*cargs, **cparams) > sqlalchemy.exc.OperationalError: (OperationalError) unable to open > database file > None None > > So have you got any idea on what might be problem here? > > > -- > João Silva >
For those still unable to fix this error here is a simple tutorial i created. Hopefully it helps someone out there and they don't have to spend hours like me trying to squash it! http://pythonhowto.com/operationalerror-unable-to-open-database-file-using-sqlite3/ -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.