web-dev-qa-db-ja.com

LinuxサーバーからリモートWindowsマシンにあるPythonスクリプトを実行します

次のタスクがあります。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側で正常に動作します。

私が間違っていることを提案していただけませんか?

前もって感謝します。

1
user374596

その方法を使用して、現在Windowsでスクリプトを実行しています...それは本当に目標ですか?

はいの場合、報告されているエラーはPYTHONPATHモジュールを見つけることができるため、SSHセッションに正しく設定されたnumpyがない可能性があります。 pythonがWindowsでどのように機能するかはよくわかりませんが、私の意見では、おそらくあなたのsshusernumpyモジュールにアクセスできないためです(おそらく別のユーザーを使用してインストールされますか?).

Windowsホストからスクリプトをフェッチした後にLinuxでスクリプトを実行する場合は、おそらく実行する必要があります

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

このコマンドにより、Windowsはスクリプトをstdoutにダンプし、ローカルのpytonインタープリターにパイプします。

2
binarym