Получение ошибки «Нет модуля с именем Threading» в IronPython - PullRequest
0 голосов
/ 12 мая 2018

Мне нужно создать функциональность потоков в моем .net-проекте с использованием Python.Для этого я создал консольное приложение (C #) и добавил ссылки на Python и IronPython. Когда я запускаю многопоточный код, я получаю следующую ошибку

IronPython.Runtime.Exceptions.ImportException: 'Модуль не указанthreading '

Есть ли какие-либо ссылки, которые необходимо добавить для Threading?Когда я погуглил его, я не нашел ссылки для добавления.

Ниже приведен код

import threading
from threading import Thread

def PaymentCalculation(userid):
    sum = 1+1
    return sum

def ProcessingData():    
    data = GetAssigneeData() #will return dataset from DB 

    for member in data.Tables[0].Rows:
        pthread = Thread(target=PaymentCalculation, args=(member["UserId"],)) 
        pthread.start()

Я решил проблему.Я использовал обычный код Python.Это не код IronPython.Я сделал код изменения, как показано ниже.

from System.Threading import (
ApartmentState,
Thread, ThreadStart,ParameterizedThreadStart
)
def PaymentCalculation(userid):
    sum = 1+1
    return sum
def ProcessingData():
    data = GetAssigneeData()
    for member in data.Tables[0].Rows:
        thread = Thread(ParameterizedThreadStart(PaymentCalculation)) 
        thread.SetApartmentState(ApartmentState.STA) 
        thread.Start(member["UserId"])

1 Ответ

0 голосов
/ 12 мая 2018

В вашем sys.path, похоже, нет места для встроенных модулей Python.

Найдите модули Python в вашей системе. Допустим, вы нашли их под C:/some/dir

Попробуйте добавить sys.path в этот каталог перед импортом threading.

import sys
sys.path.append('C:/some/dir')
from threading import Thread
<rest of your code>
...