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. Это работает для меня, я использовал анаконду, чтобы установить всю библиотеку. Я запускаю свою программу по приглашению Анаконды.