|project| & fbs #################### `fbs`_ provides a powerful environment for packaging, creating installers, and signing your application. It also lets you manage updates to your application. Since `fbs` is based on PyInstaller, it supports Linux, macOS, and Windows. For more details, see the `fbs tutorial`_ and the `fbs manual`_. .. _fbs: https://build-system.fman.io/ .. _fbs tutorial: https://github.com/mherrmann/fbs-tutorial .. _fbs manual: https://build-system.fman.io/manual/ Preparation =========== Installing `fbs`_ (>= 0.7.6) is done via **pip**:: pip install fbs If you're using a virtual environment, remember to activate it before installing `fbs`_. After the installation, you can use the `fbs`_ executable. Starting a new project ====================== `fbs`_ provides useful features for you to create a base project structure with the following command:: fbs startproject This command prompts you to answer a few questions to configure the details of your project, like: * Application name * Author name * Qt bindings (PySide2 or PyQt5) * Bundle indentified (for macOS) Afterwards, you have a `src/` directory that contains the following structure:: └── src ├── build │ └── settings └── main ├── icons │ ├── base │ ├── linux │ └── mac └── python Inside the `settings` directory, there are a few JSON files that can be edited to include more information about your project. The `main` file is in the `python` directory, and its default content is:: from fbs_runtime.application_context import ApplicationContext from PySide2.QtWidgets import QMainWindow import sys if __name__ == '__main__': appctxt = ApplicationContext() # 1. Instantiate ApplicationContext window = QMainWindow() window.resize(250, 150) window.show() exit_code = appctxt.app.exec_() # 2. Invoke appctxt.app.exec_() sys.exit(exit_code) This example shows an empty `QMainWindow`. You can run it using the following command:: fbs run Freezing the application ======================== Once you've verified that the application is working properly, you can continue with the freezing process using the following command:: fbs freeze After the process completes, you see a message stating the location of your executable. For example:: Done. You can now run `target/MyApp/MyApp`. If that doesn't work, see https://build-system.fman.io/troubleshooting. Now, you can try to run the application. The result is the same window as the one you saw with the `fbs run` command:: cd target/MyApp/ ./MyApp .. note:: This is the case for Linux. For other platforms like macOS, you need to enter the directory: `target/MyApp.app/Contents/macOS`. For Windows, you need to find the `MyApp.exe` executable.