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

  • 相关阅读:
    读书笔记之复盘
    读书笔记之大话设计模式
    代码重构之重命名
    代码重构之下降方法
    代码重构之提升方法
    代码重构之移动方法
    代码重构之封装集合
    JSON之实体对象转JSON字符串,字段名全部转为小写
    SQL代码之多组织数据汇总成树形表格展示
    Python socket学习笔记(三)
  • 原文地址:https://www.cnblogs.com/gexbooks/p/11169631.html
Copyright © 2011-2022 走看看