mypythontools.build module

This module build the app via pyinstaller. It has presets to build applications build with eel.

There is one main function build_app. Check it’s help for how to use it (should be very simple).

Note

You can run build for example from vs code tasks, create folder utils, create build_script.py inside, add

>>> import mypythontools
...
>>> if __name__ == "__main__":
...     mypythontools.build.build_app()  # With all the params you need.

Then just add this task to global tasks.json:

{
    "label": "Build app",
    "type": "shell",
    "command": "python",
    "args": ["${workspaceFolder}/utils/build_script.py"],
    "presentation": {
        "reveal": "always",
        "panel": "new"
    }
},
mypythontools.build.build_app(main_file='app.py', preset=None, web_path=None, build_web=None, remove_last_build=False, console=True, debug=False, icon=None, hidden_imports=[], ignored_packages=[], datas=[], name=None, env_vars={}, cleanit=True)[source]

One script to build .exe app from source code.

This script automatically generate .spec file, build node web files and add environment variables during build.

This script suppose some structure of the app (may have way different though). You can use project-starter from the same repository, if you start with application.

Parameters
  • main_file (str, optional) – Main file path or name with extension. Main file is found automatically and don’t have to be in root. Defaults to ‘app.py’.

  • preset (str, optional) – Edit other params for specific use cases (append to hidden_imports, datas etc.) Options [‘eel’]. Defaults to None.

  • web_path ((Path, str), optional) – Folder with index.html. Defaults to None.

  • build_web (bool, optional) – If application contain package.json in folder ‘gui’, build it (if using eel). Defaults to None.

  • remove_last_build (bool, optional) – If some problems, it is possible to delete build and dist folders. Defaults to False.

  • console (bool, optional) – Before app run terminal window appears (good for debugging). Defaults to False.

  • debug (bool, optional) – If no console, then dialog window with traceback appears. Defaults to False.

  • icon ((Path, str, None), optional) – Path or name with extension to .ico file (!no png!). Defaults to None.

  • hidden_imports (list, optional) – If app is not working, it can be because some library was not builded. Add such libraries into this list. Defaults to [].

  • ignored_packages (list, optional) – Libraries take space even if not necessary. Defaults to [].

  • datas (list, optional) – Add static files to build. Example: [(‘my_source_path, ‘destination_path’)]. Defaults to [].

  • name (str, optional) – If name of app is different than main py file. Defaults to None.

  • env_vars (dict, optional) – Add some env vars during build. Mostly to tell main script that it’s production (ne development) mode. Defaults to {}.

  • cleanit (bool, optional) – Remove spec file and var env py hook. Defaults to True.

Note

Build pyinstaller bootloader on your pc, otherwise antivirus can check the file for a while on first run and even alert false positive.

Download from github, cd to bootloader and:

python ./waf all

Back to pyinstaller folder and python setup.py