Вам придется немного изменить структуру кода.
1.daemon.py
Эта часть отвечает за загрузку моделей в память один раз и должна запускаться все время, получая входные данные из «передней» части
import numpy as np
from sklearn.externals import joblib
count_vectorizer = joblib.load("C:/Count_Vectorizer.pkl")
count_classifier = joblib.load("C:/Count_Classifier.pkl")
while True:
# Load your data from file saved on disk, pass path via input
# User can pass data, separate script saves it and passes it to daemon
with open(input("Pass your data here")) as f:
X_count = count_vectorizer.transform(np.fromfile(f))
prediction = count_classifier.predict(X_count )
print(X,prediction)
Это только набросок как я не знаю ваш точный случай использования.По сути, существует бесконечный цикл, принимающий файлы (или пути к файлам, как здесь) и выводящий прогнозы.
2.front.py
Используя модуль subprocess
, вы можете отправлять файлы путей из сценария 'front' в Daemon , ожидая пути и возвращая ответы.Вы должны присоединить входной и выходной потоки Daemon , чтобы передать путь к файлу и получить прогнозы из этого процесса.
subprocess.run или Popen , вероятно, все, что вам нужно для выполнения этой операции, ознакомьтесь с документацией и примерами использования (например, здесь , здесь и т. Д.).
РЕДАКТИРОВАТЬ: Ответ @Koalapa является еще одним вариантом, так как мы сказали, что в значительной степени зависит от того, что именно вы хотите делать, что являетсяпользовательская нагрузка и т. д.