• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    해결됨

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")

 

답변 2

·

답변을 작성해보세요.

1

인식님, 안녕하세요?

C:\Users\사용자이름\AppData\Local\Temp\gen_py

위와 같은 경로에 gen_py 폴더가 생성되어 있는 경우

gen_py 폴더를 삭제하신 후에

파이썬 코드를 재실행해보시기 바랍니다.

 

잘 해결되었으면 좋겠네요^^

만약 동일한 오류가 계속되면 다시 댓글 남겨주세요!

 

감사합니다.

 

최인식님의 프로필

최인식

질문자

2023.10.26

일코님 감사합니다.

말씀하신 대로 했더니 해결되었습니다.

 

0

인프런 AI 인턴님의 프로필

인프런 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)