Python3的数据库?

2024-05-29 04:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一小段服务器软件供几个用户个人使用。不是几百个,不是几千个,但可能一次3-10个。在

因为它是一个线程服务器,SQLite不能工作。它抱怨这样的线程:

ProgrammingError: SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 140735085562848 and this is thread id 4301299712

另外,他们说SQLite对于并发性来说并不是很好。在

现在,自从我开始使用python3(并宁愿继续使用它),我似乎无法让MySQL模块正常工作,其他模块也同样感到沮丧。在

在这种情况下,对于python3,还有其他的DB选项可以考虑吗?在


Tags: 模块用户in服务器idonlysqliteobjects
3条回答

我对python3做了psycopg2的port。在

首先注意sqlite is thread safe

$ python
Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
>>> sqlite.threadsafety
1

然后确保在每个线程中打开一个新的数据库句柄。在

我使用线程本地存储来缓存数据库句柄,因此每个线程只有一个句柄。像这样。。。(来自py2.5程序-希望它能与3.0一起使用!)在

^{pr2}$

我知道有一些Python driver用于Firebird,但我不知道是否存在python3的一些Python。也许你可以在火鸟Pythonsupport list中询问

相关问题 更多 >

    热门问题