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インタプリタにパイプします。

関連情報