DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

Python/PyQt

[Python] PyQt5 리소스 파일 Import error 해결 방법 "No module named 'icon_rc'"

Jongwon Kim 2020. 12. 1. 12:38
반응형

파이썬에서 GUI 작업으로 활용되는 QT에서는 리소스 파일을 통해 이미지 파일을 관리할 수 있습니다. 리소스 파일 qrc을 생성하고 py로 변환하여 메인 코드에 import하는 과정으로 조금 복잡합니다. 저는 이상하게도 메인 코드에 변환된 py 확장자의 리소스 파일을 import 하게 되면 종종 해당 파일이 없다고 No module named 'icon_rc' 오류가 떴습니다.  

 

 

메인 파이썬 프로그램에서는 import가 정상적으로 되지만, QT Designer로 생성한 ui 파일엔 변환된 정보가 없어서 발생하는 문제인것같습니다. 매 작업때마다 산발적으로 발생하는 오류에 지쳐 이제는 초기화 단계에서 함수형태로 코드를 입력해 ui 확장자 내에서 지정된 리소스 파일의 경로를 수정해주고 있습니다.

 

import glob

# UI 리소스 경로 업데이트 
def uiUpdate():

    # UI 파일이 있는 경로로 지정
    path = glob.glob('./resources/ui/*.ui')
    for ui_path in path:
        ui_ = open(ui_path, 'r', encoding='utf-8')
        lines_ = ui_.readlines()
        ui_.close()
        for ii, i in enumerate(lines_):
            if 'include location' in i:
                lines_[ii] = i.replace('.qrc', '.py')
        
        ui_ = open(ui_path, 'w', encoding='utf-8')
        [ui_.write(i) for i in lines_]
        ui_.close()
        print('{} update'.format(ui_path))

 

그때 그때 바로 적용하기 위해 대충 만들다보니 지저분하지만, 저와 같이 리소스 파일 import 에러가 발생하시는 분들은 한번 적용해보시길 바랍니다.

 

 

 

 

# Jetson 시리즈 응용 임베디드 시스템 제작

# 머신러닝 프로젝트 제작 및 상담  / 머신러닝 접목 졸업작품 상담

# email : deepi.contact.us@gmail.com

# site : www.deep-i.net

반응형