Извините, если это базовый c вопрос, но из-за моих строк поиска (я предполагаю) мне не повезло, что я нашел то, что искал.
Цель: Чего я хочу достичь многопоточному python функциональному бегуну. Однако эти функции находятся в других модулях в других каталогах (но внутри sys.path)
Проблема: проблема в том, что все эти модули подключены, поэтому просто вызвать скрипт py с помощью os.system идеально, поскольку скрипты присоединения теряют способность находить другие модули, которые им требуются.
Можно ли получить результаты функции в другом модуле, где вызываемая функция указана в списке.
Боже, я не уверен, имеет ли это смысл ... Вот небольшая программа с примером os os.system (не то, что я хочу использовать):
Чтобы понять, что я имею в виду, я добавил вызов в "os.system ('python {} / userScripts / {} {}'. format (sysPath, script, sysPath))", как если бы он не был переменной.
import sys, os
import concurrent.futures
sysPath = os.path.dirname(os.path.abspath(__file__))
sys.path.append(sysPath)
from serverInfo import serverInfo
from userScripts import scriptOne, scriptTwo
#Sets the location of the scriptHub.py file as the system path.
def runAnalytic(script):
os.system('python {}/userScripts/{} {}'.format(sysPath,script,sysPath))
#return(scriptOne())
#or if i were to use the variable that i pass:
#return(script())
#If i wasn't using os.system() then these would simply be the modules i'm calling, e.g test()
monitoringScripts = ["script1.py","script2.py"]
with concurrent.futures.ThreadPoolExecutor() as executor:
results = executor.map(runAnalytic, monitoringScripts)
for result in results:
print(result)
В любом случае, у кого-нибудь есть идея? Я уверен, что там что-то есть. Я просто еще не нашел.