Подтвердить что ты не робот

Ошибка Fatal Python: PyImport_GetModuleDict: нет словаря модуля

У меня есть script, который вызывает вызовы API. Чтобы ускорить процесс script, я попытался выполнить потоки.

script ниже работает, когда я в IDLE, однако, когда я пытаюсь запустить его с помощью sys argv из командной строки, я получил два типа ошибок, перечисленных ниже.

Ошибка 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 support team for more information.

Ошибка 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):

Я не могу найти ничего об этих ошибках. Таким образом, любая помощь приветствуется. Ниже приведена часть script, которая имеет дело с потоками.

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)
4b9b3361

Ответ 1

Проблема заключается в том, что когда вы запускаете это как самостоятельный script, в doWork есть много потоков демона, но script будет завершен, когда останутся только потоки демона, поэтому все они будут убиты интерпретатором выход. Когда вы запускаете его интерактивно в IDLE, интерпретатор не выходит, поэтому вы не сталкиваетесь с этой проблемой.