從Node.js 呼叫Python 函數
在Node.js 應用程式中擁抱Python 機器學習庫的功能需要一種呼叫方法Node.js 環境中的Python 函數。 「child_process」套件成為彌補這一差距的理想工具。
解決方案:利用「child_process」
透過使用「child_process」套件,您可以建立Python 子進程並在其中執行 Python 函數。操作方法如下:
首先導入 'child_process' 模組:
const spawn = require("child_process").spawn;
建立一個 Python 子程序並提供一個 Python 子程序並提供一個Python腳本路徑和任何所需的參數:
const pythonProcess = spawn('python', ["path/to/script.py", arg1, arg2, ...]);
在Python 端,確保導入'sys' 並使用'sys.argv' 存取從Node.js 傳遞的參數:
import sys arg1 = sys.argv[1] arg2 = sys.argv[2]
要將資料傳回Node.js,請在Python腳本中使用「print」並刷新輸出:
print(dataToSendBack) sys.stdout.flush()
在 Node.js 中,監聽來自 Python子程序的資料:
pythonProcess.stdout.on('data', (data) => { // Handle the data received from the Python script });
靈活性和動態函數呼叫
這種方法的優點是它支援多個參數傳遞給Python 腳本。這種靈活性可讓您設計一個 Python 腳本,其中指定的參數決定要呼叫哪個函數,而其他參數則傳遞給該函數。
範例:
在您的Python 腳本,定義一個用於機器學習的函數和一個主函數,該函數根據指定的參數協調調用哪個函數:
def machine_learning_function(data): # Implement the machine learning functionality def main(): function_name = sys.argv[1] data = sys.argv[2] if function_name == "machine_learning_function": machine_learning_function(data) if __name__ == "__main__": main()
透過傳遞函數名稱和資料作為Node.js 腳本的參數,可以動態呼叫對應的Python 函數。
注意: Node.js 和 Python 之間的資料傳輸是透過標準輸出實現的和標準輸入流。
以上是如何使用「child_process」從 Node.js 呼叫 Python 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!