Blog FQSoft

Just Simple Code Documentation

Python

Python: Membuat Package Windows dengan PyInstaller

Faiq Himmah 25 June 2024

Beberapa kendala saat membuat package windows adalah saat file .exe dijalankan muncul error:

  1. Sub folder project tidak dikenali. dalam kasus ini module yang terletak di folder "views" tidak ditemukan
  2. Muncul pesan error "ModuleNotFoundError: No module named 'win32timezone'"

Untuk itu perlu melakukan langkah-langkah berikut ini :

  • Install PyInstaller dilingkungan project "pip install pyinstaller"
  • Membuat file nama_app.spec Sesuaikan text yang berwarna hijau. Pada variabel pathex adalah solusi untuk kendala nomor 1. Pada variabel hiddenimports adalah solusi kendala nomor 2
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(
    ['src\\main.py'],
    pathex=['C:\\path\\to\\project\\src\\'],
    binaries=[],
    datas=[],
    hiddenimports=['win32timezone'],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='nama_app',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='nama_app',
)
  • Aktifkan virtual environment dengan menjalankan perintah dibawah ini
C:\path\to\project> .\app-env\Script\activate
  • Lalu jalankan perintah dibawah ini untuk membuat package windows
C:\path\to\project> python -m PyInstaller  .\nama_app.spec

Tunggu prosesnya terkadang bisa cukup lama, bergantung banyaknya module yang diproses. Jika berhasil maka outputnya adalah:

  1. Folder build
  2. Folder dist : berisi file nama_app.exe
python python for windows