выполнить приложение окна из Linux, используя Python - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь запустить командный файл на сервере Windows. Пакетный файл содержит следующий код: "rtmserver 7 5".

, который на самом деле работает на Windows:

C:\Program Files (x86)\Video Clarity\RTMonitor>rtmserver 7 5

То есть, он открывает cmd и запускает эту команду, которая правильно запускает приложение Windows

таким же образом: Если дважды щелкнуть командный файл, откроется ЭТО программное обеспечение, которое я смогу использовать. Если бы я перетащил его в cmd, он также работает нормально (C: \ Users \ user> C: \ Users \ user \ Desktop \ ClarityCommands \ RTMServer.bat.lnk)

НО, если я пытаюсь открыть его из SSH-соединения, которое запускается на другой машине Linux, которая использует paramiko и подключается к этим окнам, происходит сбой:

class SSH_Connection(object):
    def __init__(self, LOCAL_IP, username, password):
        self.LOCAL_IP = LOCAL_IP
        self.username = username
        self.password = password
        self.client = paramiko.SSHClient()
        self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.client.connect(self.LOCAL_IP, username=self.username, password=self.password)
        self.sftp = self.client.open_sftp()
    def std(self, message):
        self.message = message
        _in, out, err = self.client.exec_command(self.message)
        exitcode = out.channel.recv_exit_status()
        stdout = ''.join(out.read())
        stderr = ''.join(err.read())
        return stdout, stderr, exitcode

class Clarity(SSH_Connection):
     pass

clarity = Clarity(LOCAL_IP='172.24.11.57', username='user', password='user')

СЕЙЧАС, когда я пытаюсь вызвать командный файл, чтобы выполнить открытие для этого приложения с помощью следующих параметров paramiko и SFTP, предоставленных Python:

clarity.std('"C:\Program Files (x86)\Video Clarity\RTMonitor\RTMServer.bat"')

Возвращает следующее:

('\r\nuser@CV-S2042-RTM C:\\Users\\user>rtmserver 7 5 \r\n',
 "'rtmserver' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n",
 1)

Итак, мой компьютер с Linux не может открыть это приложение сразу

Есть мысли, как это решить?

1 Ответ

0 голосов
/ 14 ноября 2018

Итак, глядя на ваш вывод:

('\ r \ nuser @ CV-S2042-RTM C: \ Users \ user> rtmserver 7 5 \ r \ n', "'rtmserver'не распознается как внутренняя или внешняя команда, \ r \ noperable программа или командный файл. \ r \ n ", 1)

Похоже, что вы пытаетесь запустить rtmserver из C:\Users\user

Если в переменной среды PATH не существует пути к rtmserver, система будет считать, что исполняемый файл находится в текущем рабочем каталоге (то есть C:\Users\user)

Добавление C:\Program Files (x86)\Video Clarity\RTMonitor к переменной PATH должно исправить это.

...