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