python Call to external program results in [Error 193] %1 is not a valid Win32 application
Asked Answered
T

3

11

I am writing a GUI front end that after it does a bunch of validation will execute a series of already existing vbscript .wsf files.

My problem is when I try to execute the .wsf files I get the error

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

Running them from the command line works fine

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

I have tried several different options, call, os.system etc. But all result in the same Win32 error.

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

Any ideas?

Tinker answered 4/4, 2011 at 12:48 Comment(0)
B
5

As the warning says, file.wsf isn't an application. It's a script that gets run by being passed as an argument to the script engine. You'll probably need to call the script handler instead. I've no idea what the handler application is, but let's assume that it's cscript.exe. You should adjust your call() to run this and pass the wsf file as a parameter.

Ballew answered 4/4, 2011 at 12:52 Comment(2)
When I change the command to call("cscript.exe","<myfile>") it returns the error "TypeError: bufsize must be an integer"Tinker
I got it now call(["cscript.exe","<myfile>"])Tinker
C
19

Do you have the 64-bit version of Python installed?

I got the same kind of error when I was trying to do a ctype call to a (32-bit) dll running Python 2.7 (64-bit). When I changed to the 32-bit version of Python, the error disappeared and things started working! Perhaps you are having the same problem?

I suppose in Win64, a 64-bit process must be all 64-bit :)

Caporetto answered 29/9, 2012 at 18:13 Comment(1)
As an alternative to running in 32bit, you might find the package in 64bit at this listing: lfd.uci.edu/~gohlke/pythonlibsWorldbeater
B
5

As the warning says, file.wsf isn't an application. It's a script that gets run by being passed as an argument to the script engine. You'll probably need to call the script handler instead. I've no idea what the handler application is, but let's assume that it's cscript.exe. You should adjust your call() to run this and pass the wsf file as a parameter.

Ballew answered 4/4, 2011 at 12:52 Comment(2)
When I change the command to call("cscript.exe","<myfile>") it returns the error "TypeError: bufsize must be an integer"Tinker
I got it now call(["cscript.exe","<myfile>"])Tinker
N
-1

If you are using Anaconda platform for python and same for the triggering, you need to mentioned the Python.exe file in the Command and Python file in the Command Argument. It is working for me, I used anaconda to install all library. I am triggering my program on the Anaconda prompt.

Necklace answered 4/6, 2019 at 6:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.