Выполнение скрипта Python, расположенного на удаленной машине Windows с сервера Linux

В gawk эти две цитаты из руководства описывают проблему:

An action consists of one or more awk statements, enclosed in braces (‘{…}’). Each statement specifies one thing to do. The statements are separated by newlines or semicolons.

Точка с запятой является " разделителем ", но не " терминатором ".
Единственным допустимым терминатором действия является закрывающая фигурная скобка(}).

Следовательно, то, что следует за закрывающей скобкой действия (}), должно быть другим шаблоном {действие}

В "man mawk " есть другое описание, которое может помочь прояснить, что должен делать awk:

Statements are terminated by newlines, semi-colons or both. Groups of statements such as actions or loop bodies are blocked via {... } as in C. The last statement in a block doesn't need a terminator.

«Человек наук » объясняет это так:

The pattern comes first, and then the action. Action statements are enclosed in { and }.

И, если вы хотите остановиться на деталях, прочтите описание POSIX:

action           : '{' newline_opt                             '}'
                 | '{' newline_opt terminated_statement_list   '}'
                 | '{' newline_opt unterminated_statement_list '}'
                 ;

И найдите то, что является «незавершенным» списком операторов.

Или, проще, найдите Действие , чтобы прочитать:

Any single statement can be replaced by a statement list enclosed in curly braces. The application shall ensure that statements in a statement list are separated by or characters.

Снова:are separated by or characters

1
27.09.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
27.01.2020, 23:30

Теги

Похожие вопросы