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

大家都在看

  • ASP.NET Core 2.2 : 二十二. 多样性的配置方式

    大多数应用都离不开配置,本章将介绍ASP.NET Core中常见的几种配置方式及系统内部实现的机制。(ASP.NET Core 系列目录) 说到配置,第一印象可能就是”…

    Linux 2023年6月7日
    0105
  • Abp vNext中集成Redis

    在Abp vNext中默认集成了缓存,可以使用.net Core自带的缓存,也可以使用Redis,但官网的Redis集成中少掉了一个依赖项的介绍。 首先,正常使用Abp vNext…

    Linux 2023年5月28日
    085
  • Linux 服务器巡检脚本

    bash;gutter:true;</p> <h1>!/bin/bash</h1> <p>cat < $RESULTFILE …

    Linux 2023年6月13日
    0100
  • UWP graphql-dotnet新版数据查询客户端的实现

    之前写过一篇文章 UWP GraphQL数据查询客户端的实现,这次的标题基本差不多,只不过微软这个graphql-dotnet repo从1.x升级到了3.x,跨度有点大。 如果你…

    Linux 2023年6月13日
    086
  • linux 安装docker

    https://www.cnblogs.com/kingsonfu/p/11576797.html posted @2022-04-29 17:52 银河星光 阅读(10 ) 评论…

    Linux 2023年6月13日
    090
  • linux 添加java环境

    将下载的jdk解压到/usr/local/下 设置软链接 在/etc/profile.d/java.sh 添加如下内容(建议在/etc/profile.d/添加环境变量) 生效配置…

    Linux 2023年6月8日
    058
  • 网络扫描(一)

    使用工具:Kali Linux、Metaspoliatable(作为攻击目标) 扫描的4个不同阶段 用ping验证系统是否正在运行。 用Nmap扫描目标主机的端口。 用Nmap脚本…

    Linux 2023年6月14日
    0109
  • 博客怎么写才能更安全和简洁

    前言 博客实现本地存储 Markdown语法的介绍 博客对于我们普通人来说就是为了更好的去实现个人知识的一个整理融合然后把知识共享可以帮助其他去实现自己的一些工作或者学习中的一些疑…

    Linux 2023年6月14日
    083
  • 位运算(一)

    位运算的一般应用 功能 例子 运算 去掉最后一位 1110101->111010 x>>1 在最后加0 1110101->11101010 x< 通过…

    Linux 2023年6月8日
    0133
  • Redis 常用五种数据类型编码

    1.String 1.1 常用命令 (1)设置值 set key value [ex seconds] [px milliseconds] [nx|xx] set命令有几个选项: …

    Linux 2023年5月28日
    093
  • 研发过程中的文档管理与工具

    写文档也是技术活 01:实践 对于多数开发同学来说,很多时候即讨厌没有研发文档,但是自己又不愿意常写文档,痛且倔强着; 程序员该不该写文档,与争论哪种编程语言最好一样,想撕的嘴不留…

    Linux 2023年6月14日
    098
  • 如何在CentOS 6.3上安装nslookup

    nslookup是bind-utils软件包的一部分。请注意,host、dig和nslookup也是bind工具的一部分。如果没有安装bind-utils包,当你尝试nslooku…

    Linux 2023年6月7日
    0107
  • 幸运的袋子 附加动图演示!

    幸运的袋子_牛客题霸_牛客网 (nowcoder.com) 厄运的袋子 用到了深度遍历 递归回溯法 这里假设一个例子: 1 1 1 2 2 3 4 5 7 8 因为要确认是否辛运,…

    Linux 2023年6月13日
    085
  • 多线程执行同一任务,不共享局部变量

    多线程执行同一任务,不共享局部变量 一、 代码展示 import threading import time 多线程执行同一任务时,局部变量是不共享的 def sum_num():…

    Linux 2023年6月14日
    086
  • linux 命令 df -h 查不到新添加的硬盘

    云平台:腾讯云系统:ubuntu 20.04 第一部分:缘由 1、我的一台云服务器上挂载了两块硬盘。一块 50G 系统盘、一块 400G 数据盘。然后我查询目前在 Linux 系统…

    Linux 2023年5月27日
    0327
  • Mobaxterm使用(类似xshell)

    网盘保存(链接:https://pan.baidu.com/s/1r_tx_eZ7zSUslLNNl5oOFw 提取码:fcc8) 主要功能 支持各种连接SSH,X11,RDP,V…

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