python 调用外部程序导致 [错误 193] %1 不是有效的 Win32 应用程序
我正在写一个图形界面程序,这个程序在完成一系列验证后,会执行一些已经存在的 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")
有没有什么想法?
3 个回答
-1
如果你在使用Anaconda这个平台来运行Python程序,并且也是通过这个平台来触发程序的话,你需要在命令中指定Python.exe这个文件,同时在命令参数中指定你的Python文件。对我来说,这样做是有效的,因为我用Anaconda安装了所有需要的库。我是在Anaconda的命令提示符下运行我的程序的。
19
你安装了64位版本的Python吗?
我在用64位的Python 2.7调用一个32位的dll时,也遇到了类似的错误。当我换成32位的Python后,错误就消失了,事情也开始正常运作了!也许你遇到的也是同样的问题?
我想在64位的Windows系统中,一个64位的程序必须全部都是64位的哦 :)
5
正如警告所说,file.wsf
不是一个应用程序。它其实是一个脚本,需要通过脚本引擎来运行。你可能需要调用脚本处理程序。虽然我不知道具体的处理程序是什么,但我们假设它是 cscript.exe
。你应该调整你的 call()
,让它运行这个程序,并把 wsf 文件作为参数传递进去。