解决报错No module named ‘win32api’
2023-09-14 本文已影响0人
粗识名姓
Part 1
常规的解决办法如 pip install pywin32
或 pip install pypiwin32
就无需多言了,这里主要记录一下非常见的解决方法,参考
根据文献描述,报错原因在于缺少两个dll文件:pythoncom310.dll
和pywintypes310.dll
, 命令行进入python安装路径执行:
cd D:\Python
python Scripts/pywin32_postinstall.py -install
之后在系统盘 C:\Windows\System32
可以找到上述两个dll文件,讲这两个文件移动(剪切)到python路径下文件夹 D:\Python\Lib\site-packages\win32
中。
然后编辑python路径下的python3xx._pth
文件,内容如下:
Lib/site-packages
Lib/site-packages/win32
Lib/site-packages/win32/lib
Lib/site-packages/pythonwin
python310.zip
.
经过上面的修改,报错的问题应该就解决了!
Part 2
使用精简的Python环境包的情况下遇到这个报错情况又不一样,如果照抄 Part 1 的解决办法,由于python3xx._pth
文件的配置与精简包配置冲突,会导致别的包报错,所以只能按照精简包原配置文件的方法修改
定位配置文件 sitecustomize.py
, 在精简python路径下的python3xx.zip压缩文件中,解压出来之后编辑内容然后重新压缩进去,定位调用sys.path.append
方法的内容,添加部分如下:
try:
if os.path.exists(os.path.join(sp_dir, 'win32')):
sys.path.append(os.path.join(sp_dir, 'win32'))
sys.path.append(os.path.join(sp_dir, 'win32/lib'))
sys.path.append(os.path.join(sp_dir, 'pythonwin'))
except:
pass