次のタスクがあります。Linux(RedHat)サーバーとWindowsマシンがあります。 Python sshを使用してLinuxからWindows側にあるスクリプトを実行する必要があります。パスワードなしでアクセスできるSSHサーバーがWindowsマシンで構成されています。次のコマンドを試しました:
$ 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側で正常に動作します。
私が間違っていることを提案していただけませんか?
前もって感謝します。
その方法を使用して、現在Windowsでスクリプトを実行しています...それは本当に目標ですか?
はいの場合、報告されているエラーはPYTHONPATH
モジュールを見つけることができるため、SSHセッションに正しく設定されたnumpy
がない可能性があります。 pythonがWindowsでどのように機能するかはよくわかりませんが、私の意見では、おそらくあなたのsshuser
がnumpy
モジュールにアクセスできないためです(おそらく別のユーザーを使用してインストールされますか?).
Windowsホストからスクリプトをフェッチした後にLinuxでスクリプトを実行する場合は、おそらく実行する必要があります
sshuser@windows_Host_IP "type C:/Users/sshuser/PythonScripts/myscript.py" | python -
このコマンドにより、Windowsはスクリプトをstdoutにダンプし、ローカルのpytonインタープリターにパイプします。