일모도원(日暮途遠) 개발자

[파이썬] exe만들때 필요한 파일 추가하기 본문

개발/파이썬

[파이썬] exe만들때 필요한 파일 추가하기

달님개발자 2025. 3. 20. 15:31
반응형
 pyinstaller --onefile main.py

pyinstaller로 실행파일을 만드니 오류가 난다.

 

파이썬으로 실행하면 잘되는데. 디버깅 해보니 파이썬으로 실행할때는 이런씩으로 된 패키지를 가져온다. 

imported_package.__path__: _NamespacePath(['C:\\Users\\ways1\\Documents\\dalpy\\OMRChecker\\src\\processors'])

 

 

exe로 실행보니 전혀 이상한곳의 경로에서 src/processor를 찾고 있어서 에러가 나고 있다.

imported_package.__path__: _NamespacePath(['C:\\Users\\ways1\\AppData\\Local\\Temp\\_MEI169042\\src\\processors'])

 

챗지피티에 물어보니 spec파일을 만들라고 한다.

 

pyi-makespec --onefile main.py

 

이러면 main.spec이라는 파일이 하나 생긴다. datas에 src/processor를 넣어준다. 그리고 exe하나만 만들려면 onefile=True, 를 추가해준다.

a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[('src/processors', 'src/processors')],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.datas,
    [],
    name='main',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    onefile=True,
)

 

spec파일을 만들고 나면 이제 "pyinstaller main.spec"로 실행하면 된다. 

 

 

imported_package.__path__: _NamespacePath(['C:\\Users\\ways1\\AppData\\Local\\Temp\\_MEI41042\\src\\processors'])

 

반응형