如何在 python 中解决 ImportError: DLL load failed while importing win32api

问题描述

安装完 pywin32 之后,如果直接在代码中 import win32api 可能会报下述错误:

ImportError: DLL load failed while importing win32api

stackoverflow 上关于该问题有各种各样的回答,有的好用,有的并不好使,所以本篇博客将会探讨解决这个问题的正确姿势。

问题解决

假设我们在终端输入 conda create -n Frameless-Window python=3.9,创建一个 python 版本为 3.9,名字为 Frameless-Window 的虚拟环境,然后激活该虚拟环境并使用 pip install pywin32 安装最新版本(此处为 304)的 pywin32。进入文件夹 D:/Anaconda/envs/Frameless-Window/Lib/site-packages/pywin32_system32 ,会发现里面有两个 dll 文件,如下图所示:

如何在 python 中解决 ImportError: DLL load failed while importing win32api

将这两个文件复制到 C:/Windows/System32,不出意外的话就不会再报 ImportError 错误了。如果没有使用虚拟环境,可以在 D:/Python/Lib/site-packages/pywin32_system32 找到这两个 dll。

如果 C:/Windows/System32 中已经存在同名的 dll 了,说明你的电脑上的全局 python 环境或者另一个虚拟环境也依赖于 pywin32,由于 pywin32 版本可能不同,如果直接替换掉这两个 dll,可能会导致他们出现 ImportError 错误。经过测试,发现 227、228 和 300 版本的 pywin32 的这两个 dll 可以互相替换,301、302、303 和 304 也可以互相替换,如果将 300 版本的 dll 替换为 301 版本的 dll,就会出现 ImportError 错误。所以,最佳实践就是保持 pywin32 版本不变,以上~~

Original: https://www.cnblogs.com/zhiyiYo/p/16340429.html
Author: 之一Yo
Title: 如何在 python 中解决 ImportError: DLL load failed while importing win32api

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582812/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 阿里云-docker上安装redis

    1、取最新版的 Redis 镜像 这里我们拉取官方的最新版本的镜像: $ docker pull redis:latest 2、查看本地镜像 使用以下命令来查看是否已安装了 red…

    Linux 2023年5月28日
    090
  • 主机存活探测程序

    一、ICMP协议原理 什么是icmp协议 因特网控制报文协议ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中…

    Linux 2023年6月7日
    0114
  • 关于Linux_CentOS8.0安装软件时遇到的坑

    新的一年已经开始,准备换工作。在此之前,我已经做好了升级准备,买了一台服务器。 [En] The new year has begun, ready to change jobs….

    Linux 2023年5月27日
    0139
  • 真·Android Zxing 扫码中文乱码解决

    Zxing3.2.1 之前遇到过Android Zxing扫码乱码的问题,网上搜了下解决了下。 今天又遇到了问题。 依然会乱码。 研究总结如下: Zxing 可以在Hints中添加…

    Linux 2023年6月13日
    084
  • Linux编译安装、压缩打包与定时任务服务

    一、编译安装 即使用源代码编译安装的方式,编译打包软件。特点: 可以自定制软件; 可以按需构建软件; 编译安装案例 1、下载源代码包(这里以Nginx软件包源代码为例) wget …

    Linux 2023年5月27日
    0100
  • Shell脚本生成密码

    利用 /dev/urando 生成密码 密码以字母、数字、开头 特殊符号多 for _ in {1..30};do tr -dc ‘~`!@#$%^&*()_+-={}:&…

    Linux 2023年6月6日
    0118
  • CSAPP 之 CacheLab 详解

    前言 本篇博客将会介绍 CSAPP 之 CacheLab 的解题过程,分为 Part A 和 Part B 两个部分,其中 Part A 要求使用代码模拟一个高速缓存存储器,Par…

    Linux 2023年6月7日
    0142
  • 小公司比较吃亏的两道微服务面试题

    其实选择工作的时候,很多技术牛人都会选择一些小而美的公司,技术全面,能够以一个更全面的视角看整个公司的运作,人和人之间的相处也很简单。但是,有两道微服务的面试题,小公司的朋友们会比…

    Linux 2023年6月14日
    0115
  • Vector底层实现

    vector的三个私有成员 :_start 记录初始位置, _finish 记录有效字符, _endofstoage 记录容量大小 vector会存储的类型不同,所以要用模版来定类…

    Linux 2023年6月13日
    0105
  • Spring中毒太深,离开了Spring,我居然连最基本的接口都不会写了¯_(ツ)_/¯

    前言 众所周知,Java必学的框架其中就是SSM,Spring已经融入了每个开发人员的生活,成为了不可或缺的一份子。 随着 Spring 的崛起以及其功能的完善,现在可能绝大部分项…

    Linux 2023年6月13日
    089
  • Linux下TIME_WAIT连接优化内核参数tcp_tw_reuse与tcp_tw_recycle区别与联系浅析

    概述 最近学习网络相关知识点,很多文章提到针对TCP time wait(后续简称TW)状态连接进行优化的参数tcp_tw_reuse和tcp_tw_recycle,并且不少文章提…

    Linux 2023年6月6日
    0125
  • shell脚本执行错误:#!/bin/bash: No such file or directory

    1、问题描述: 执行.sh脚本时控制台报错 : #!/bin/bash: No such file or directory 2、解决办法: cat -A 文件路径 会发现第一行有…

    Linux 2023年5月28日
    0259
  • Tmux 配置

    前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作…

    Linux 2023年6月7日
    0106
  • bash 教程-2 shell 字符串 转义 模式扩展 特殊符号 [MD]

    我的GitHub 我的博客 我的微信 我的邮箱 bqt20094 baiqiantao@sina.com 字符串的表示 shell 中的字符串可以用 单&am…

    Linux 2023年5月28日
    071
  • 驱动写用户态应用程序的标准输出卡死

    问题描述 驱动写用户态应用程序的标准输出,pipe卡住,导致驱动不能正常继续工作注:感谢木三的解决方法. 问题解决 lsof 查看pipe管道 #lsof python3 2581…

    Linux 2023年6月6日
    0104
  • phpcms安装

    【快速安装开始】 下载解压phpcms,复制安装文件到站点目录”/opt/html”里,给予权限(官网无法访问了,所以下载地址需自行寻找上传) cd /us…

    Linux 2023年6月6日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球