Почему ошибка «команда не распознана» возникает только при заполнении окна? - PullRequest
1 голос
/ 12 ноября 2008

В приложении «Мои записи» есть пункт меню для создания новой пустой записи. Когда я открываю окно листа, я могу без проблем открывать новые окна, используя для этого subprocess.Popen ().

Однако в Windows (я еще не тестировал его на других ОС), если я открываю новое окно, а затем использую диалоговое окно «Открыть файл» для заполнения полей данными из файла, я больше не могу создавать новые окна. После того, как это заполнено, Windows дает мне

'foo.py' не распознается как внутренняя или внешняя команда, работоспособна программа или командный файл.

Я не понимаю, что может привести к тому, что Windows вдруг не распознает вызов Popen (). У меня нет кода, который бы влиял на него каким-либо образом, о котором я знаю.

Ответы [ 2 ]

4 голосов
/ 12 ноября 2008

Из сообщения об ошибке похоже, что вам нужно передать полный путь "foo.py" к вашему вызову Popen. Обычно просто наличие «foo.py» будет искать в вашем текущем рабочем каталоге, но это может быть немного непредсказуемо для Windows, как я обнаружил. Ваш, кажется, прыгает с диалогом открытия файла.

Во-вторых, просто для примера вам нужно передать foo.py в качестве аргумента исполняемому файлу python.exe, а не самому файлу foo.py. Опять же, я хотел бы указать это путем.

Итак, чтобы быть в безопасности, что-то вроде:

subprocess.Popen([r'C:\Python2.5\python.exe', r'C:\path\to\foo.py'])
0 голосов
/ 13 ноября 2008

Предлагаемый ответ, похоже, решил проблему. Я также понял, что мне нужно было использовать os.name , чтобы определить, какая ОС используется, тогда я могу использовать правильный формат пути для загрузки внешнего файла Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...