我有以下任务:我有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
模块。我真的不知道 python 在 Windows 下如何工作,但在我看来,这可能是因为您sshuser
无权访问numpy
模块(可能是使用其他用户安装的?)。
如果您想在从 Windows 主机获取脚本后在 Linux 下执行该脚本,那么您可能应该运行
sshuser@windows_host_IP "type C:/Users/sshuser/PythonScripts/myscript.py" | python -
此命令将使 Windows 将脚本转储到 stdout 并将其通过管道传输到本地 pyton 解释器