解决方案:调换import xlwings as xw 和import win32api的顺序
起因:某位同事突然找到我让我帮忙看看代码,她无任何代码基础仅仅是因为这个RPA是其他同事交接给她的还是源码不是打包好的小程序,她说其他代码都是她找技术组装完spyder配完环境直接运行的,有问题也是找某位大神不过大神已转岗也不好意思再去打扰人家,大神推荐了同组的前同事,但她看前同事一直在勿扰模式或会议中不忍心打扰,于是被前同事踢给了我。按照代码我安装了库但是一直报错,按照网上找到的解决方案还要移动两个文件到system32,由于需要管理员权限,我还去联系了技术组让他们的工程师帮我移动文件,结果我之前成功的程序都开始了报错。产生的报错如下:
Traceback (most recent call last):
File "", line 3, in <module>
import xlwings as xw
File "C:\Program Files\Anaconda3\lib\site-packages\xlwings\__init__.py", line 9, in <module>
from . import _xlwindows as xlplatform
File "C:\Program Files\Anaconda3\lib\site-packages\xlwings\_xlwindows.py", line 15, in <module>
import win32api
ImportError: DLL load failed while importing win32api: 找不到指定的程序。
我一直觉得是xlwings的问题或者是win32api的问题,卸载重装都没有用。直到我尝试运行其他文件夹内的python文件,一样的环境一样的import但是没有报错,我可以确定不是环境和库的问题,等我将报错文件挪到该文件夹中我发现还是报错,将源码在新建的python文件中重新写入运行竟然报错,索性将import xlwings删除,报错后我重新引入了xlwings,注意此时新引入的xlwings在所有import的最后一行也就是在import win32api之后,运行居然成功了。
结果:那位同事的问题我没有解决,我依旧不知道为什么我要更改引入库的顺序,明明以前都没有报错,python你别太离谱!!!