개인 자료란 (JE)

  서버 커뮤니티

Profile 라고솔로가말했습니다 대표칭호 없음

SaidBySolo 8b58f951b6404b78ae3ba92d55d431f7

Profile

커뮤니티 소통 개발하기 프로그래밍

pyinstaller 경로를 찾을수없습니다. 안되잖아?

2020.11.18 조회 수 432 추천 수 0

pyinstaller --onefille 인수는 temp폴더에 압축풀고 실행하는 방식


대충 현재 구조가 추출기가 임포트 될때 추출기가 등록되는 방식인데


그래서 코드를 일단

    failed = []

    for extension in [
        re.sub(".py", "", file) for file in os.listdir(directory) if not "__" in file
    ]:
        try:
            import_module("rabbitark.extractor." + extension)
        except:
            traceback.print_exc()
            failed.append(extension)

    return failed

일케 짜놨는데


 pyinstaller에서 extractor에있는 py 파일을 못 가져왔음 그래서 시도한게

--hidden-import 인수 였는데

그 파일은 포함이되지만 경로가 맞지않아서 로드가 되질 않음


그래서 삽질 하면서 결국 찾은 방법이

--add-data로 추출기 넣고 돌리자 라는 방법임

pyinstaller .\rabbitark\__main__.py --onefile --add-data="rabbitark\extractor\*;." 


대충 일케 넣고 빌드한다음  추출기 로드 코드를 다음과 같이 짜줬음


if getattr(sys, "frozen", False):
    directory = getattr(sys, "_MEIPASS", os.path.abspath(os.path.dirname(__file__)))
else:
    directory = os.path.dirname(os.path.realpath(__file__))


def load():
    failed = []

    for extension in [
        re.sub(".py", "", file)
        for file in os.listdir(directory)
        if not "__" in file
        if os.path.splitext(file)[1] == ".py"
    ]:
        try:
            import_module(
                extension
                if getattr(sys, "frozen", False)
                else f"rabbitark.extractor.{extension}"
            )
        except:
            traceback.print_exc()
            failed.append(extension)

    return failed
		

대충  설명하면  getattr(sys, "frozen", False)은 빌드가된것인지 확인하는거고 

파이썬에서 실행할때 임포트 할때와 exe에서 실행할때 하고 다르기때문에 그거만 if문 써서 검사하도록하고 끝냈음

그리고 pyc pyo등 바이너리 파일도있기때문에 확실하게 검사하기위해서 ==를 써줬음


결국에는 됐는데 문제는

py2exe 쓸건데 왜 삽질했지 ㅋㅋㅋㅋㅋ




Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1

/files/thumbnails/932/765/003/262x150.crop.jpg?20240410124459

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

노트블럭전문가

2024-04-10

0

/files/thumbnails/403/765/003/262x150.crop.jpg?20240409190538

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

Sonttukk

2024-04-09

4