Python Вызов внешней программы приводит к ошибке [Ошибка 193]% 1 не является допустимым приложением Win32

Я пишу интерфейс GUI, который после того, как он проведет кучу проверки, выполнит серию уже существующих файлов vbscript.wsf.

Моя проблема в том, что когда я пытаюсь выполнить .wsf файлы, я получаю сообщение об ошибке

WindowsError:  [Error 193] %1 is not a valid Win32 application

Запуск их из командной строки отлично работает

d:\<some path>\<some file>.wsf

Я пробовал несколько разных опций, call, os.system и т.д. Но все они приводят к той же ошибке Win32.

call("d:\<some path>\<some file>.wsf")

Любые идеи?

Ответ 1

Как говорится в предупреждении, file.wsf не является приложением. Это script, который запускается, передается как аргумент движку script. Вероятно, вам нужно будет вызвать обработчик script. Я понятия не имею, что такое обработчик, но допустим, что он cscript.exe. Вы должны настроить ваш call() для запуска этого и передать файл wsf в качестве параметра.

Ответ 2

У вас установлена ​​64-разрядная версия Python?

У меня такая же ошибка, когда я пытался сделать вызов ctype для (32-разрядной) DLL, использующей Python 2.7 (64-разрядная версия). Когда я перешел на 32-разрядную версию Python, ошибка исчезла, и все стало работать! Возможно, у вас такая же проблема?

Я полагаю, что в Win64 64-разрядный процесс должен быть все 64-битным:)

Ответ 3

Если вы используете платформу Anaconda для python и то же самое для запуска, вам нужно упомянуть файл Python.exe в файле Command и файл Python в аргументе Command. Это работает для меня, я использовал анаконду, чтобы установить всю библиотеку. Я запускаю свою программу по приглашению Анаконды.