如何在 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)

大家都在看

  • 十一、服务介绍及端口

    服务管理简介服务器的作用主要是什么?主要是通过网络来提供服务,比如apache提供一个web服务,mysql提供一个数据库服务,dns提供一个域名解析服务,ftp提供一个文件服务器…

    Linux 2023年6月7日
    0112
  • MybatisPlus核心功能——实现CRUD增删改查操作 (包含条件构造器)

    CRUD 官方文档:https://baomidou.com/(建议多看看官方文档,每种功能里面都有讲解)【本文章使用的mybatisplus版本为3.5.2】 条件构造器 一般都…

    Linux 2023年6月7日
    0127
  • ICMP 协议仿真及ping命令用途

    1、实验目的 加深对 IPv4 协议首部各定义域的理解,掌握路由表的结构和基本配置命令,熟悉 ICMP 的调试操作。 2、实验原理 IPv4 协议定义,网络层协议的相关 RFC 定…

    Linux 2023年6月8日
    0128
  • redis报错OOM command not allowed when used memory > ‘maxmemory’

    登录到redis上查询 ./redis-cli -h IP -p port -a passwdredis>info memory 查询,内存已耗尽 查询配置文件,发现之前配置…

    Linux 2023年5月28日
    0106
  • 随笔记录

    html结构、css表现、js行为vscode和sublime一样的在vscode中的插件:a.Auto Rename Tag 整体改变标签b.view-in-browser 预览…

    Linux 2023年6月13日
    096
  • 编程入门之字符编码与乱码

    ——”为什么服务器收到的请求或者打开的文本文件有时会乱码?” ——”因为编码不对。” ——”编码的本质是什么?为什么编码…

    Linux 2023年6月13日
    096
  • Redis进阶 事务:Redis事务详解

    Redis事务相关命令 Redis事务执行步骤 Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执…

    Linux 2023年5月28日
    0106
  • python2.6.6安装Image模块

    python2.6.6安装Image模块1、下载Image模块源码地址:http://www.pythonware.com/products/pil/index.htm2、加压文件…

    Linux 2023年6月14日
    0104
  • 斐波那契数列前1000项

    斐波那契数列前1000项 {1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,177…

    Linux 2023年6月6日
    0100
  • 15、16、17思维导图

    posted @2022-04-24 10:20 20191223张俊怡 阅读(31 ) 评论() 编辑 Original: https://www.cnblogs.com/zzj…

    Linux 2023年6月8日
    0152
  • 预处理

    在前面的学习中经常遇到用 #define命令定义符号常量的情况,其实使用 #define命令就是要定义一个可替换的宏。 宏定义是预处理命令的一种,它提供了一种可以替换源代码中字符串…

    Linux 2023年6月13日
    097
  • python 对文件操作

    实现对文件的简单操作 #!/usr/bin/env python -*- coding:utf-8 -*- def Find(class_name): class_list = […

    Linux 2023年6月13日
    0141
  • 【网络安全篇】常见的HTTP状态码小结(3位5类)

    HTTP 状态码(HTTP Status Code)用以表示网页服务器传输协议的响应状态;状态码为 三位数,响应分为 五种;状态码的第1位数字表示状态类型,第2、3位数字表示具体的…

    Linux 2023年6月13日
    094
  • 一篇文章Shell脚本快速入门

    Shell脚本基础入门 Bash注释 Bash只支持单行注释,使用 #开头的都被当作注释语句: 整行注释 echo hello world # 行尾注释 通过Bash的一些特性,可…

    Linux 2023年5月28日
    075
  • Python Docstring 风格和写法学习

    什么是Python Docstring 和Java类似,Python也通过注释形式的Docstring给程序、类、函数等建立文档。通过Docstring建立的文档不仅对人来说有更好…

    Linux 2023年6月14日
    0112
  • python 练习题:小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点

    python;gutter:true; -<em>- coding: utf-8 -</em>- 小明的成绩从去年的72分提升到了今年的85分,请计算小明成…

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