python - Python 抱怨在一个线程中创建的 SQLite 对象只能在那个线程中使用,但我没有尝试访问任何其他线程中的任何 SQLite 对象
问题描述
导入的文件中包含在导入时运行的代码。
engine = create_engine("sqlite:///database.db")
Base.metadata.create_all(engine)
在一个不相关的文件(但仍然是同一个包的一部分)中,我使用了这段代码。
t = threading.Thread(target=_play)
t.start()
这是我唯一创建的另一个线程,_play
只是播放一个声音文件。它没有对 SQLite 的任何引用。
我收到的错误如下。
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread.
为什么我会收到这样的错误?
解决方案
我仍然不确定为什么会发生这样的事情,但playsound
模块是这里的问题。我切换到simpleaudio
并没有这个问题了。
推荐阅读
- azure-active-directory - 在 .NET 中强制使用特定用户登录 MSAL
- javascript - React Native:文本输入在绑定到状态时一次添加(附加)多个字母
- c++ - C++/CLI System.FormatException:“输入字符串的格式不正确。” 同时将系统字符串转换为 int
- java - 从java中的文件读取时间
- php - 如何在 php 文件中接收 HTTP POST 请求
- java - 检查数组是否升序的代码显示错误
- python - 无法在 python 2.7 上安装垃圾邮件(操作系统:Fedora)
- asp.net - 从 API 返回时值为空白
- c# - 为什么Window的服务中HTTPListener的BeginGetContext没有反应或触发?
- git - 如何在 git log 中跳过某些单词的构建