Linux 서버에서 원격 Windows 시스템에 있는 Python 스크립트를 실행합니다.

Linux 서버에서 원격 Windows 시스템에 있는 Python 스크립트를 실행합니다.

나는 다음과 같은 작업을 수행합니다. Linux(RedHat) 서버와 Windows 시스템이 있습니다. SSH를 사용하여 Linux에서 Windows 측에 있는 Python 스크립트를 실행해야 합니다. Windows 컴퓨터에서 비밀번호 없이 액세스할 수 있는 SSH 서버를 구성합니다. 다음 명령을 시도했습니다.

$ ssh sshuser@windows_host_IP /drives/c/Users/sshuser/PythonScripts/myscript.py
C:\ProgramData\Anaconda3\python.exe: can't open file '/drives/c/Users/sshuser/PythonScripts/myscript.py': [Errno 2] No such file or directory

그런 다음 이것을 시도했습니다.

$ ssh sshuser@windows_host_IP C:/Users/sshuser/PythonScripts/myscript.py
Traceback (most recent call last):
  File "C:/Users/sshuser/PythonScripts/myscript.py", line 3, in <module>
    import pandas as pd
  File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\__init__.py", line 19, in <module>
    "Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']

이는 Python 버그와 비슷해 보이지만 스크립트는 Windows 측에서 제대로 실행됩니다.

내가 뭘 잘못하고 있는지 제안해 주실 수 있나요?

미리 감사드립니다.

답변1

이 접근 방식을 사용하면 현재 Windows에서 스크립트를 실행하고 있습니다. 이것이 실제로 목표입니까?

그렇다면 내 생각에는 SSH 세션에 올바른 설정이 누락되었을 수 있습니다. PYTHONPATH보고된 오류는 해당 numpy모듈만 찾을 수 있다는 것이기 때문입니다. 나는 Windows에서 Python이 어떻게 작동하는지 잘 모르지만 모듈 sshuser에 대한 액세스 권한이 없기 때문에 그럴 수도 있는 것 같습니다 (다른 사용자를 사용하여 설치했을 수도 있습니까?).numpy

Windows 호스트에서 스크립트를 가져온 후 Linux에서 스크립트를 실행하려면 다음을 실행해야 합니다.

sshuser@windows_host_IP "type C:/Users/sshuser/PythonScripts/myscript.py" | python -

이 명령을 사용하면 Windows가 스크립트를 stdout으로 덤프하고 로컬 pyton 인터프리터로 파이프합니다.

관련 정보