Ho uno script che effettua chiamate a un'API. Per accelerare lo script ho cercato di implementare il threading.Errore fatale Python: PyImport_GetModuleDict: no dizionario del modulo
Lo script seguente funziona quando sono in IDLE, tuttavia quando provo a eseguirlo con un sys argv dalla riga di comando ho ricevuto due tipi di errori elencati di seguito.
Errore 1
Fatal Python error: PyImport_GetModuleDict: no module dictionary!
This application has requests the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
Errore 2
Exception in thread Thread-1 (most likely raised during iterpreter shutdown):
Exception in thread Thread-2 (most likely raised during iterpreter shutdown):
Exception in thread Thread-3 (most likely raised during iterpreter shutdown):
Exception in thread Thread-5 (most likely raised during iterpreter shutdown):
non riesco a trovare nulla su questi errori. Quindi, ogni aiuto è apprezzato. Di seguito è la parte dello script che si occupa di threading.
import threading
import diffbot
urls = [[example.com],[example2.com]]
data = []
def getData(url):
x = diffbot.classify(url)
data.append(x)
def doWork(urls):
for element in urls:
for url in element:
t = threading.Thread(target=getData, args=(url,))
t.daemon = True
t.start()
doWork(urls)
Dal googling del primo messaggio di errore, suppongo che tu sia su Windows. Vorrei aggiungere quell'informazione (magari tagga anche la domanda "windows"). Aggiungi anche: quale versione di Python stai usando, esattamente come stai eseguendo lo script, se altri script Python si comportano normalmente, se l'uso interattivo di diffbot (cioè nella shell Python) genera l'errore ... –