从 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模块。我真的不知道 python 在 Windows 下如何工作,但在我看来,这可能是因为您sshuser无权访问numpy模块(可能是使用其他用户安装的?)。

如果您想在从 Windows 主机获取脚本后在 Linux 下执行该脚本,那么您可能应该运行

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

此命令将使 Windows 将脚本转储到 stdout 并将其通过管道传输到本地 pyton 解释器

相关内容