To be able to use the Python version of Simian GUI a license file for Simian GUI must be available in a location where it can be found by the PyArmor license mechanism that is in Simian GUI.

To ensure the license file can be found, it must be made available in one of the following ways:

• Set the PYARMOR_LICENSE environment variable to the absolute file path of the license file, for instance by putting it in Python's sys.PYARMOR_LICENSE variable.
• Put the license file in the pytransform folder of Simian GUI.

If no valid license file is available, an error is thrown and the form is not shown.

When contacting us about a license issue, please provide the contents of your license.lic.txt file and the information described in the next section for a quicker resolution.

Information about a license file can be read from the text file that came with it. This license information can be compared with information about your environment. This information can be obtained with two utility functions in the simian.entrypoint module:

• The get_info_for_license function writes relevant information of the machine that runs Simian GUI to the console. This information can be used to get a license file that is valid for that machine.

As an alternative you can install PyArmor and use the hdinfo function directly.

• The get_license_info function prints some information about Simian GUI to the console.

Note that for these utilities to work you either need Simian GUI with a valid license or have PyArmor installed in your Python environment. The simian.entrypoint tries to run these functions when a license problem was encountered, but then requires PyArmor to be installed.

When no valid license can be found, the simian.entrypoint raises a RuntimeError with a message on the violation:

1. Read file license.lic failed, No such file or directory No license file was found. If you have one, make sure it can be found as described earlier in this section.
2. License is expired the license expiry date was exceeded. You need a new license.
3. 'sys.PYARMOR_LICENSE': '<value>' is not an existing file. Python could not find the file specified in the PYARMOR_LICENSE environment variable. Review the full file name and ensure that it points to your license file.
4. License is not for this machine The license is bound to environment properties that do not match with the environment that Simian GUI is currently being used on. For disambiguation of the message refer to the logs (described below) that may contain more information on the issue.
1. License is bound to another domain.
2. License is bound to another Python interpreter.
4. License contains a disk name that cannot be matched to the deployment environment.
5. License checker: Marshal loads failed Your environment is not supported by this Simian GUI version. Use a Python version and operating system that are supported.
6. Invalid product license file
1. License file could not be read by PyArmor. Ensure that it exists and that it is a Simian GUI license.lic file.
2. License is bound to a domain, whereas you are not on a domain.
7. Check license failed, Invalid input packet The license that was found by PyArmor is not for Simian GUI.
8. NameError(“name ‘__pyarmor __is not defined”) Simian GUI code was not unpacked correctly. Put the following code snippet in your wrapper function, which should ensure that the unpacking is triggered.
    # Call the PyArmor runtime to ensure it is started.
import pytransform
pytransform.pyarmor_runtime()

1. Get mac address failed The license contains an invalid mac address. Contact us.
2. License file contains an unexpected data type <type>. The license file was not read in correctly or contains incorrect information. Please contact us.
3. License file contains an unsupported environment <environment>. Simian GUI version that you are using cannot determine the validity of license files for the shown environment and thus throws an error. The environment may be supported in a newer version of Simian GUI.
4. Azure specific messages:
5. Could not get Azure Subscription Information. Check that this is an Azure environment. Simian GUI was unable to determine the Azure Subscription of the environment it is used on. Ensure that you are deploying on Azure.
6. License is not for this Azure Subscription <id>. License is only valid for another Azure Subscription. Use Simian GUI on the Azure Subscription that this license is for.
7. License file does not contain an Azure subscription id. This is not supported. The license file does not contain an Azure Subscription ID. This is not supported by Simian GUI version that you are using. The environment may be supported in a newer version of Simian GUI.
8. ownR specific messages:
1. Could not get ownR license Information. Check that this is an ownR environment. Simian GUI was unable to determine the ownR license ID of the environment it is used on. Ensure that you are deploying on ownR.
2. License is not for this ownR environment <License id> License is only valid for another ownR environment. Use Simian GUI on the ownR environment that this license is for.
3. License file does not contain an ownR license id. This is not supported. The license file does not contain an ownR license ID. This is not supported by Simian GUI version that you are using. The environment may be supported in a newer version of Simian GUI.

If the error message you are getting is not in this list, check whether it is listed on the PyArmor website. If it is also not listed there, contact us.

The simian.entrypoint also tries to write information on the license and environment to the log. However, this only works when pyarmor is installed in your Python environment. If it is not installed and the utilities in Simian GUI do not work due to an invalid licence, a RuntimeError with the following message is raised:

No working PyArmor utilities available for getting the license and environment information. No valid license found. Ensure that PyArmor can find it, or (temporarily) install PyArmor in the Python environment for extra license and environment information.