EOFError: исчерпан ввод при использовании Python - PullRequest
0 голосов
/ 19 апреля 2020

Недавно я попытался использовать функции python Excel на Windows с библиотекой win32com.client. Я установил его с помощью:

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, в init () Файл "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 version = p.load () EOFError: исчерпан ввод

, это появляется, когда я импортирую win32com.client как win32, я пытался переустановить библиотеку, но она все та же, любая идея?

1 Ответ

0 голосов
/ 19 апреля 2020

Это была проблема (клиент / COM-сервер) связи, решенная путем очистки кэша.

Вы можете сделать это, удалив папку gen_py "C: \ Users \\ AppData \ Local \ Temp \ gen_py "

После отладки ошибка была из GenCache. Я не очень хорошо осведомлен об этих библиотеках, но Я нашел этот интересный поток и заменил gencache на Dispatch, поэтому Программа изменилась на:

import os
import win32com.client as win32

ExcelApp = win32.Dispatch("Excel.Application")
ExcelWrkBook = ExcelApp.ActiveWorkbook
ExcelWrkSht = ExcelWrkBook.ActiveSheet
ExcelWrkSht.Cells(5,3).Value = "something"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...