ImportError: DLL load failed while importing win32api: 找不到指定的程序

在将Python小程序用pyinstaller打包并转移到新机器上时,遇到ImportError:DLL load failed while importing win32api。尝试卸载重装pywin32、切换环境及调整打包参数均未解决问题。最终通过运行pywin32_postinstall.py脚本并在install函数中添加路径和配置注册表,成功解决缺失文件问题。

使用pyinstaller 打包python小程序,本地运行正常,copy到新机上,报错,ImportError: DLL load failed while importing win32api: 找不到指定的程序。

卸载pywin32,重装,切换环境,打包结果依然报错,我了个去。

在PowerShell下运行以下代码,完全正常,说明包安装没问题。

import win32api
import win32gui

将DLL复制到system32目录下,问题依旧。问题定位在pywin32未打包到exe中,尝试pyinstaller各种参数,依然无法解决。

最后,在python环境的Scripts目录下,找到pywin32_postinstall.py,运行以下代码后,问题解决

python pywin32_postinstall.py -install

打开pywin32_postinstall.py,找到install函数,增加路径,配置注册表,复制文件,一系列操作,说明pyinstaller安装的时候,没有找到对应路径信息,导致打包的时候却少文件,以此留查。

def install(lib_dir):
    import traceback

    # The .pth file is now installed as a regular file.
    # Create the .pth file in the site-packages dir, and use only relative paths
    # We used to write a .pth directly to sys.prefix - clobber it.
    if os.path.isfile(os.path.join(sys.prefix, "pywin32.pth")):
        os.unl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值