pyautoit:OSError: [WinError 193] %1 不是有效的 Win32 应用程序

在64位机器上,且使用64位python,pip install PyAutoIt的过程
中,可能会报如下错误:

      File "c:\program files\python37\lib\ctypes\__init__.py", line 356, in __init__
        self._handle = _dlopen(self._name, mode)
    OSError: [WinError 193] %1 不是有效的 Win32 应用程序。
    ----------------------------------------

解决方法:

手动下载pyautoit:https://pypi.org/project/PyAutoIt/

解压将其保存到本地...\Python37\Lib\site-packages\ 中,此目录为Python安装包存放目录。

将autoit文件夹中的autoit.py文件打开,将

dll = "AutoItX3.dll"

改为

dll = "AutoItX3_x64.dll"

保存完成,运行

python setup.py install

即可

原因:

 

可以注意到,在刚才改过代码下面,有一个if判断:

bit, _ = platform.architecture()
if "(x86)" in os.environ['PROGRAMFILES'] and bit == "64bit":
    # if 64bit version of python within 64bit version of Windows,
    # load AutoItX3_x64.dll
    dll = "AutoItX3_x64.dll"

在交互式命令行中运行:

os.environ['PROGRAMFILES']

会发现结果是:

C:\Program Files

32位系统是:

C:\Program Files (x86)

所以问题应该出if的第一个条件中,大概率是作者的源码写错了,导致在64位平台下无法正确引用对应位数的dll


参考文档:
链接:https://www.jianshu.com/p/0d7415bab999

转载于:https://www.cnblogs.com/gexbooks/p/11169631.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值