ホームページ > バックエンド開発 > Python チュートリアル > 「child_process」を使用して Node.js から Python 関数を呼び出す方法

「child_process」を使用して Node.js から Python 関数を呼び出す方法

Patricia Arquette
リリース: 2024-11-30 14:44:10
オリジナル
812 人が閲覧しました

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 を提供しますスクリプトのパスと任意のパスargument:

    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(dataToSendBack)
    sys.stdout.flush()
    ログイン後にコピー
  5. Node.js で、Python サブプロセスからのデータをリッスンします:

    pythonProcess.stdout.on('data', (data) => {
      // Handle the data received from the Python script
    });
    ログイン後にコピー

柔軟性とダイナミックな機能呼び出し

このアプローチの利点は、複数の引数を Python スクリプトに渡すことができることです。この柔軟性により、指定した引数によって呼び出す関数が決まり、他の引数がその関数に渡される Python スクリプトを設計できます。

例:

Python スクリプトでは、機械学習用の関数と、指定された引数に基づいて呼び出す関数を調整する main 関数を定義します。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート