zoukankan      html  css  js  c++  java
  • pyautoit:OSError: [WinError 193] %1 不是有效的 Win32 应用程序

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

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

    解决方法:

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

    解压将其保存到本地...Python37Libsite-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

  • 相关阅读:
    nginx+php-fpm 配置和错误总结
    C#——Winform 无边框随意拖动【转载】
    C#——Socket
    asp.net——Base64加密解密
    asp.net——上传图片生成缩略图
    C#——获取远程xml文件
    SQL Server—— 如何创建定时作业
    asp.net——正则表达式
    asp.net——Josn转DataTable(转)
    JS——EasyuiCombobox三级联动
  • 原文地址:https://www.cnblogs.com/gexbooks/p/11169631.html
Copyright © 2011-2022 走看看