首頁 >後端開發 >Python教學 >如何使用「child_process」從 Node.js 呼叫 Python 函數?

如何使用「child_process」從 Node.js 呼叫 Python 函數?

Patricia Arquette
Patricia Arquette原創
2024-11-30 14:44:10805瀏覽

How to Call Python Functions from Node.js Using 'child_process'?

從Node.js 呼叫Python 函數

在Node.js 應用程式中擁抱Python 機器學習庫的功能需要一種呼叫方法Node.js 環境中的Python 函數。 「child_process」套件成為彌補這一差距的理想工具。

解決方案:利用「child_process」

透過使用「child_process」套件,您可以建立Python 子進程並在其中執行 Python 函數。操作方法如下:

  1. 首先導入 'child_process' 模組:

    const spawn = require("child_process").spawn;
  2. 建立一個 Python 子程序並提供一個 Python 子程序並提供一個Python腳本路徑和任何所需的參數:

    const pythonProcess = spawn('python', ["path/to/script.py", arg1, arg2, ...]);
  3. 在Python 端,確保導入'sys' 並使用'sys.argv' 存取從Node.js 傳遞的參數:

    import sys
    arg1 = sys.argv[1]
    arg2 = sys.argv[2]
  4. 要將資料傳回Node.js,請在Python腳本中使用「print」並刷新輸出:

    print(dataToSendBack)
    sys.stdout.flush()
  5. 在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn