When PyInstaller is used without any options to bundle myscript.py
, the default output is a single folder (named myscript
) containing an executable named myscript
(myscript.exe
in windows) along with all the necessary dependencies.
The app can be distributed by compressing the folder into a zip file.
One Folder mode can be explictly set using the option -D
or --onedir
pyinstaller myscript.py -D
One of the major advantages of bundling to a single folder is that it is easier to debug problems. If any modules fail to import, it can be verified by inspecting the folder.
Another advantage is felt during updates. If there are a few changes in the code but the dependencies used are exactly the same, distributors can just ship the executable file (which is typically smaller than the entire folder).
The only disadvantage of this method is that the users have to search for the executable among a large number of files.
Also users can delete/modify other files which might lead to the app not being able to work correctly.