【问题标题】:EOFError: Ran out of input when using PythonEOFError:使用 Python 时输入不足
【发布时间】:2020-07-15 17:19:12
【问题描述】:

最近,我尝试在 Windows 上使用带有 win32com.client 库的 python Excel 函数。我安装了它:

pip install pywin32

我在脚本中使用了它,使用简单的命令,例如:

import os
import win32com.client as win32

ExcelApp = win32.gencache.EnsureDispatch("Excel.Application")
ExcelWrkBook = ExcelApp.ActiveWorkbook
ExcelWrkSht = ExcelWrkBook.ActiveSheet
ExcelWrkSht.Cells(5,3).Value = "something"

所以一切都很好,直到我突然出现这样的错误:

Traceback(最近一次调用最后一次): 文件“myscript.py”,第 2 行,在 将 win32com.client 导入为 win32 文件“C:\Users\Mycomputer\AppData\Local\Programs\Python\Python37-32\lib\site-packages\wi n32com\client__init__.py",第 11 行,在 从 。导入 gencache 文件“C:\Users\Mycomputer\AppData\Local\Programs\Python\Python37-32\lib\site-packages\wi n32com\client\gencache.py",第 660 行,在 初始化() 文件“C:\Users\Mycomputer\AppData\Local\Programs\Python\Python37-32\lib\site-packages\wi n32com\client\gencache.py",第 60 行,在 init 中 _LoadDicts() 文件“C:\Users\Mycomputer\AppData\Local\Programs\Python\Python37-32\lib\site-packages\wi n32com\client\gencache.py",第 113 行,在 _LoadDicts 中 版本 = p.load() EOFError: 输入用完

每当我将 win32com.client 导入为 win32 时都会弹出此问题,我尝试重新安装库但它仍然相同,知道吗?

【问题讨论】:

    标签: python-3.x pywin32


    【解决方案1】:

    这是一个问题(客户端/COM服务器)通信,通过清除缓存解决。

    您可以通过删除 gen_py 文件夹“%userprofile%\AppData\Local\Temp\gen_py”来做到这一点

    调试后错误来自 GenCache。我对这些库不是很了解,但是I found this interesting thread 并用 Dispatch 替换了 gencache,因此程序更改为:

    import os
    import win32com.client as win32
    
    ExcelApp = win32.Dispatch("Excel.Application")
    ExcelWrkBook = ExcelApp.ActiveWorkbook
    ExcelWrkSht = ExcelWrkBook.ActiveSheet
    ExcelWrkSht.Cells(5,3).Value = "something"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多