首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行python xlwing库,并导致COMRetryObjectWrapper(DispatchEx('Excel.Application'))失败

运行python xlwing库,并导致COMRetryObjectWrapper(DispatchEx('Excel.Application'))失败
EN

Stack Overflow用户
提问于 2019-06-10 15:49:49
回答 1查看 438关注 0票数 0

我有一个代码,基本上操作xlsm文件,按一个宏按钮,然后强制关闭它(使用psutil)

其过程是:打开xlsm文件(MyExcel.xslm)==> write data ==>按下宏按钮,save==>强制关闭(用psutil)。

这个过程重复'x‘次(假设重复20000次)

这是强制关闭:

代码语言:javascript
运行
复制
for proc in psutil.process_iter():
        if proc.name() == "EXCEL.EXE":
             proc.kill()

在一个完全随机的运行中,python停止运行,并显示以下错误:

代码语言:javascript
运行
复制
  File "C:\Program Files\Python36\lib\site-packages\xlwings    \_xlwindows.py", line 296, in __init__
    self._xl = COMRetryObjectWrapper(DispatchEx('Excel.Application'))
  File "C:\Program Files\Python36\lib\site-packages\win32com\client\__init__.py", line 113, in DispatchEx
   dispatch = pythoncom.CoCreateInstanceEx(clsid, None, clsctx,   serverInfo, (pythoncom.IID_IDispatch,))[0]
 pywintypes.com_error: (-2146959355, 'Server execution failed', None, None)

我使用的是python 3.6.6,xlwing =0.15.1

尝试添加延迟(time.sleep(1)),以在两次运行之间添加一些时间

它总是在这一行(最后一行)失败:

RoutingManipulator()类:

代码语言:javascript
运行
复制
def __init__(self):

    self.__number_of_cells = 48
    self.new_file = os.path.join(folder, file)self.new_file= Myfile.xlsm

    self.workBook = xw.Book(self.new_file) # FAILS HERE!!

在本例中,它仅在run number =612中失败。

有时它会在500分钟内失败。诸若此类

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 20:55:47

正如上面的评论所显示的,我已经实现了一个内部删除,

self.workBook.app.kill()

似乎它已经解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56522501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档