해결된 질문
작성
·
937
1
import win32com.client as win32
hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject")
위의 코드를 실행 후 아래의 에러 메시지가 나오는데 어떻게 해결해야 할까요?
hwp = win32.gencache.EnsureDTraceback (most recent call last): File "d:\GTD\02. 프로젝트\파이썬\한글\hwp_field_test.py", line 4, in <module> hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 621, in EnsureDispatch disp = win32com.client.Dispatch(prog_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\__init__.py", line 119, in Dispatch return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\__init__.py", line 47, in __WrapDispatch klass = gencache.GetClassForCLSID(resultCLSID) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 200, in GetClassForCLSID mod = GetModuleForCLSID(clsid) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 245, in GetModuleForCLSID mod = GetModuleForTypelib(typelibCLSID, lcid, major, minor) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 287, in GetModuleForTypelib AddModuleToCache(typelibCLSID, lcid, major, minor) File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 661, in AddModuleToCache SetTypelibForAllClsids(mod.CLSIDToClassMap) ^^^^^^^^^^^^^^^^^^^ AttributeError: module 'win32com.gen_py.7D2B6F3C-1D95-4E0C-BF5A-5EE564186FBCx0x1x0' has no attribute 'CLSIDToClassMap'ispatch("hwpframe.hwpobject")
답변 2
1
인식님, 안녕하세요?
C:\Users\사용자이름\AppData\Local\Temp\gen_py
위와 같은 경로에 gen_py 폴더가 생성되어 있는 경우
gen_py 폴더를 삭제하신 후에
파이썬 코드를 재실행해보시기 바랍니다.
잘 해결되었으면 좋겠네요^^
만약 동일한 오류가 계속되면 다시 댓글 남겨주세요!
감사합니다.
0
안녕하세요 최인식 님, 인프런 AI 인턴이에요.
해당 에러는 win32com 모듈에서 지정한 프로그램에 대한 클래스 매핑 정보가 없어서 발생하는 문제일 수 있습니다. 이 경우에는 win32com 모듈의 캐시를 비워주고 다시 캐시를 생성해보는 것이 해결책이 될 수 있습니다. 다음과 같이 코드를 수정해보세요:
import win32com.client as win32
import pythoncom
# 캐시 삭제
pythoncom.CoInitialize()
win32.gencache.EnsureModule('{F7FD1F16-FB84-4080-8490-C4A660B99DD9}', 0, 1, 0)
# 다시 캐시 생성
hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
위의 코드를 실행해보시고 문제가 해결되는지 확인해보세요. 추가로 파이썬과 win32com 모듈의 버전 호환성에도 주의해야 합니다. 감사합니다!
실행해보니 다음과 같은 에러 메시지가 나왔습니다~
추가적 답변 부탁드립니다~
Traceback (most recent call last):
File "d:\GTD\02. 프로젝트\파이썬\한글\hwp_ex.py", line 7, in <module>
win32.gencache.EnsureModule('{F7FD1F16-FB84-4080-8490-C4A660B99DD9}', 0, 1, 0)
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 601, in EnsureModule
module = MakeModuleForTypelib(
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\gencache.py", line 318, in MakeModuleForTypelib
makepy.GenerateFromTypeLibSpec(
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32com\client\makepy.py", line 261, in GenerateFromTypeLibSpec
tlb = pythoncom.LoadRegTypeLib(typelibCLSID, major, minor, lcid)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pywintypes.com_error: (-2147319779, '라이브러리가 등록되지 않았습니다.', None, None)
일코님 감사합니다.
말씀하신 대로 했더니 해결되었습니다.