> 백엔드 개발 > 파이썬 튜토리얼 > 'child_process'를 사용하여 Node.js에서 Python 함수를 호출하는 방법은 무엇입니까?

'child_process'를 사용하여 Node.js에서 Python 함수를 호출하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-30 14:44:10
원래의
805명이 탐색했습니다.

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을 제공합니다. 스크립트 경로 및 원하는 인수:

    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿