无法在Windows上使用SQLAlchemy和Python 2.7.3连接到内存中的SQLite DB

use*_*141 2 python sqlite sqlalchemy

我试图在Windows上使用SQLAlchemy与Python 2.7.3一起使用内存中的SQLite数据库.我可以连接到引擎,但是当我尝试执行第二个语句时,我收到以下错误:

>>>    engine=create_engine('sqlite:///memory:',echo=True)
>>>    engine.execute("select 1").scalar()

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 2445, in execute
connection = self.contextual_connect(close_with_result=True)
File "C:\Python27\lib\site-packages\sqlalchemy\engine\base.py", line 2489, in contextual_connect
self.pool.connect(),
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 236, in connect
return _ConnectionFairy(self).checkout()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 401, in __init__
rec = self._connection_record = pool._do_get()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 822, in _do_get
return self._create_connection()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 189, in _create_connection
return _ConnectionRecord(self)
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 282, in __init__
self.connection = self.__connect()
File "C:\Python27\lib\site-packages\sqlalchemy\pool.py", line 344, in __connect
connection = self.__pool._creator()
File "C:\Python27\lib\site-packages\sqlalchemy\engine\strategies.py", line 80, in connect
return dialect.connect(*cargs, **cparams)
File "C:\Python27\lib\site-packages\sqlalchemy\engine\default.py", line 281, in connect
return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.OperationalError: (OperationalError) unable to open database file
None None
Run Code Online (Sandbox Code Playgroud)

mil*_*ose 9

文件名应该是:memory:,而不是memory:.(请参阅内存数据库的文档).该相关SQLAlchemy的文档提到的默认路径,所以你应该使用:

engine=create_engine('sqlite://',echo=True)
Run Code Online (Sandbox Code Playgroud)

您得到的错误可能是因为memory:在Windows上不是有效的文件名.