环境
- windows 10 64bit
- anaconda with python 3.8
简介
在跑一个 python 脚本时,突然报错
ImportError: DLL load failed while importing win32api

解决方法
看到模块装载的错误,第一反应就是去安装
(py38) C:\xugaoxiang\gogs\pythonProject>pip install pywin32
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: pywin32 in c:\tools\anaconda\envs\py38\lib\site-packages (300)
发现系统中已经有了对应的库。那么接下来就来到 python 环境下的 Scripts 目录,比如我这里使用的是 anaconda 的虚拟环境(C:\Tools\Anaconda\envs\py38\Scripts),或者搜索文件 pywin32_postinstall.py,在该目录下打开 powershell,执行
# 激活虚拟环境
conda activate py38
python pywin32_postinstall.py install

从输出信息中可以看出,这个脚本的作用就是将2个库 pythoncom38.dll 和 pywintypes38.dll,从 C:\Tools\Anaconda\envs\py38\Lib\site-packages\pywin32_system32 拷贝到 C:\Windows\system32 目录下。

至此,错误消失。