У меня возникли проблемы с использованием многопроцессного процесса в sqlite3. Код:ошибка многопроцессорности python при использовании sqlite3
import multiprocessing
import sqlite3
class DealProcess(multiprocessing.Process):
def __init__(self):
super(DealProcess, self).__init__()
'''
CREATE TABLE people (id text, name text)
INSERT INTO people (id, name) VALUES ('1', 'jack')
'''
self.conn = sqlite3.connect('people.sqlite')
def __get_people(self):
cur = self.conn.cursor() # This not work, the following is OK,Why?
# conn = sqlite3.connect('people.sqlite')
# cur = conn.cursor()
cur.execute('SELECT * FROM people')
return cur.fetchall()
def run(self):
for people in self.__get_people():
print people
if __name__ == '__main__':
p = DealProcess()
p.start()
Когда я инициализировать self.conn
в __init__
, он не работает в __get_people
. Ошибка сообщения:
cur.execute('SELECT * FROM people')
OperationalError: no such table: people
Я не знаю, что вызывает его. Когда я напрямую использую raw connect, как аннотации, он работает хорошо. Благодарю.
Я имею в виду ** people.sqlit ** уже существует и имеет таблицу * people *. Затем запустите код python, '__get_people' работает неправильно. –