У меня есть следующая задача: у меня есть сервер Linux (RedHat) и машина Windows. Мне нужно выполнить скрипт Python, расположенный на стороне Windows, из Linux, используя ssh. 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
muru 27 Сен 2019 в 12:20

1 ответ

Таким образом, вы в настоящее время запускаете свой скрипт в Windows ... действительно ли это цель?

Если да, то я предполагаю, что в вашем сеансе SSH, вероятно, отсутствует правильно установленный PYTHONPATH, потому что сообщаемая ошибка заключается в том, что он просто может найти модуль numpy. Я действительно не знаю, как python работает под Windows, но, по моему мнению, это, вероятно, потому, что ваш sshuser не имеет доступа к модулю numpy (возможно, он установлен под другим пользователем?).

Если вы хотите выполнить скрипт под Linux после его загрузки с хоста Windows, вам, вероятно, следует запустить

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

Эта команда заставит Windows вывести скрипт на стандартный вывод и передать его вашему локальному интерпретатору pyton.

2
binarym 27 Сен 2019 в 12:33
Да, моя цель - запустить скрипт на компьютере с Windows.
 – 
user374596
27 Сен 2019 в 12:45
1
Таким образом, вам нужно копаться в PYTHONPATH-подобных настройках под окнами или спрашивать на другом обмене стеками, потому что Unix и Linux StackExchange - не лучшее место для решения проблем с окнами ;-)
 – 
binarym
27 Сен 2019 в 12:47
Спасибо за вашу идею. Возникла проблема с PYTHONPATH для правильного пользователя. Он был настроен, но для другого пользователя. Теперь это решено.
 – 
user374596
27 Сен 2019 в 12:58