Search code examples
pythontkinterexepyinstaller

How to convert a python project into an executable file with all additional scripts?


I know there have been a bunch of questions already asked regarding this but none of them really helped me. Let me explain the whole project scenario so that I provide a better clarity to my problem. The directory structure is somewhat like this shown below:

Project Directory Layout

enter image description here

I need to convert this whole GUI based project (The main file is using Tkinter module to create GUI) into main.exe which I can share with others while making sure that all the additional files work exactly the same way it is working now when I run this main.py via Command Prompt. When I use this command with pyinstaller -

"pyinstaller --onefile --noconsole main.py"

It creates main.exe which shows "Failed to execute script" on running. Please provide me a detailed explanation on what should I do to achieve what I have stated above. Thank you in advance.


Solution

  • pyinstaller uses a few dirty tricks to compress a bunch of files into one

    I recommend using cx_Freeze instead along with inno setup installer maker

    do pip install cx_Freeze to install that and go here for inno setup

    then copy the following into a file named setup.py in the same folder as your project

    from cx_Freeze import setup, Executable
    
    setup(name = "YOUR APP NAME" ,
          version = "1.0.0" ,
          description = "DESCRIPTION" ,
          executables = [Executable("PYTHON FILE", base = "Win32GUI")]
    )
    

    lastly run python setup.py build

    if you want as onefile download this file here

    just edit the file a bit and use inno compiler to make into installer