私は次のようなことをします。 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インタプリタにパイプします。