-
카테고리
-
세부 분야
업무 자동화
-
해결 여부
해결됨
win32 에러 관련
23.10.16 16:34 작성 조회수 391
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")
답변을 작성해보세요.
0
인프런 AI 인턴
2023.10.18
안녕하세요 최인식 님, 인프런 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 모듈의 버전 호환성에도 주의해야 합니다. 감사합니다!
최인식
질문자2023.10.18
실행해보니 다음과 같은 에러 메시지가 나왔습니다~
추가적 답변 부탁드립니다~
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)
답변 2