파이썬(Python)

[Python, API] Com Interface 연결 시 에러 해결 방법(AttributeError)

sunning 2022. 3. 25. 16:41
728x90
반응형

파이썬으로 Vissim Com Interface를 불러오던 도중 에러가 발생했다. 거의 2년동안 잘 사용한 코드였는데 오늘 갑자기, 뜬금없는 에러가 나서 매우 당황했다.

VISSIM을 불러오던 도중 난 에러는 다음과 같다.

AttributeError: module 'win32com.gen_py.46BC06CD-79C5-4A6A-B716-56EB76F8BAEFx0x20x0' has no attribute 'CLSIDToClassMap'

 

 

열심히 구글링 해 본 결과 원인은 알 수 없었지만 해결방법은 알아냈다. 이렇게 win32com에 어떠한 attribute(속성)이 없다는 에러가 나면 46BC06CD-79C5-4A6A-B716-56EB76F8BAEFx0x20x0 <= 이 파일을 찾아서 제거해줘야 에러가 해결된다는 것이다.

그럼 저 파일을 제거하기 위해서는 파일이 있는 경로를 알아내야한다. 이는 파이썬 환경에서 아래와 같은 코드를 이용하여 알아낼 수 있다.

import win32com
print(win32com.__gen_path__)

나는 print한 경로가 아래와 같이 나왔는데, 아무리 찾아봐도 AppData가 없는 것이다. 에러가 한 번 발생하면 정말 첩첩산중에 시간은 순삭이 된다. 멘붕ㅠㅠ

C:\Users\user\AppData\Local

그래도 AppData 찾기는 쉬웠다. 숨겨져있는 폴더로 윈도우 검색창에 %AppData%라고 검색하면 쉽게 찾을 수 있다.

이렇게 나온 경로에 따라 들어가게 되면 아래와 같이 아까 에러가 난 원인이 되는 폴더가 존재할 것이다.

그럼 이걸 그냥 과감하게 삭제해주면 된다. 혹시 걱정이 된다면 잘라내어 다른 폴더로 옮겨놓아도 된다. 그 후 다시 파이썬을 restart 하여 코드를 돌리면 오류가 발생하지 않는 것을 확인할 수 있다.

728x90
반응형