나는 다음과 같은 작업을 수행합니다. 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 인터프리터로 파이프합니다.