Трудности с запуском Python Popen:Файл не найден
-
19-09-2019 - |
Вопрос
Я пытаюсь использовать python для запуска программы.
from subprocess import Popen
sa_proc = Popen(['C:\\sa\\sa.exe','--?'])
Запуск этого небольшого фрагмента выдает ошибку:
Ошибка Windows:[Ошибка 2] Система не может найти указанный файл
Программа существует, и я скопировал и вставил непосредственно из проводника абсолютный путь к exe-файлу.Я пробовал другие вещи и обнаружил, что если я помещу EXE-файл в исходную папку со скриптом python и использую './sa.exe ', то это сработает.Единственное, о чем я могу думать, это о том, что я запускаю скрипт python (и python) из отдельного раздела (F:).
Есть какие-нибудь идеи?Спасибо
Решение
Как документы скажите: "В Windows:класс Popen использует CreateProcess() для выполнения дочерней программы, которая оперирует строками.Если аргументы представляют собой последовательность, они будут преобразованы в строку с использованием метода list2cmdline().".Возможно, этот метод все портит, так почему бы не попробовать более простой подход:
sa_proc = Popen('C:\\sa\\sa.exe --?')
Если это все еще не удается, то:что такое os.environ['COMSPEC']
как раз перед тем, как ты попробуешь это?Что произойдет, если вы добавите , shell=True
Для Popen
чьи аргументы?
Редактировать:оказывается, по-видимому, это случай простого неправильного написания, так как 'sa' на самом деле было написано программой SpamAssassin - дважды удваивайте s - и то, что OP писал, было spamassasin - один двойной s, но один во второй раз.
Другие советы
Возможно, у вас нет разрешения на выполнение C:\sa\sa.exe.Вы пробовали запускать программу вручную?