Python setup
Requires the following resources:
- An internet connection to download and install Simian GUI from our PyPi server (or an offline alternative).
Setup steps:
-
Create and activate a Python environment.
Note: Use Python 3.8 - 3.12.
-
Install the packages using
pip:pip install --extra-index-url https://pypiserver.monkeyproofsolutions.nl/simple/ simian-gui simian-local simian-examplesNote that for installation on a deployment server the
simian-localandsimian-examplespackages are not required.-
The
simian-localpackage installspywebviewas a dependency. To verify it is installed correctly on your system, run the following python commands. A window, displaying the PyWebview web page, should open.import webview webview.create_window('Hello world', 'https://pywebview.flowrl.com/') webview.start() -
If you want to use Redis cache (for deployed mode) it can be specified as optional dependency of the
simian-gui:pip install simian-gui[redis]
-
Testing your setup
You can test your environment setup by running the following commands in your Python environment:
import simian.gui
form = simian.gui.Form()
If you get a Form object, your environment is setup correctly. If pywebview is installed correctly in your Python environment, you should be able to start the BallThrower example locally by running the following commands:
import simian.local
simian.local.run("simian.examples.ballthrower", window_title="Ball Thrower")
If you get an error, you can check this against these error messages and solutions:
-
ModuleNotFoundError: No module named 'simian'Simian GUI was not found on the Python path. Ensure that thesimian-guiandsimian-localpackages are installed. -
ModuleNotFoundError: No module named 'simian.examples.ballthrower'Thesimian-examplespackage was not found on the Python path. Ensure that thesimian-examplespackage is installed. -
ModuleNotFoundError: No module named xxxEnsure that all dependencies are installed in your Python environment.
Simian GUI contents
A full Simian GUI installation in your Python environment installs the following folders and files in the site-packages folder:

From simian-builder:
simiancssCSS for the builder.templatesTemplates for creating apps and composed components.builder.jsonBuilder form definition.builder.pyThe Builder module.version.txtVersion information.
From simian-examples:
simianexamplesall_components.pyWeb app with all components that can be used in Simian.ballthrower.pyWeb app with the BallThrower application. It contains thegui_initandgui_eventfunctions that define the user interface of the application.ballthrower_engine.pyModule with a class that implements the ball throwing model.plot_types.pyWeb app showing some of the Plotly figures that can be used in Simian.workshop_example.pyWeb app showing a DataTable and Plotly figure in use.wrapped_thrower.pyWeb app with the BallThrower and a engine that is wrapped with Simian Wrapper.
version.txtVersion information.
From simian-gui:
simianguiFolder containing Simian GUI code.config.jsonFile containing the version number of the front-end.entrypoint.pyUtility for handling callbacks.version.txtVersion information.
From simian-local:
simianhtmlFolder containing the front-end build for PyWebview.eventh_handler.pyUtility for communication with tht PyWebview window.local.pyThe Simian Local module.local.pyiPython stub file containing type hints for thelocal.pymodule.version.txtVersion information.