#python #multithreading #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.
Почему я могу получить такую ошибку?
Комментарии:
1. Пожалуйста, создайте минимальный рабочий пример, демонстрирующий проблему!
Ответ №1:
Я все еще не уверен, почему такое происходит, но playsound
проблема здесь в модуле. Я переключился на simpleaudio
и больше не имел этой проблемы.
Комментарии:
1. Без воспроизводимого вопроса и объяснения этот ответ не будет полезным.