| # Frequently Asked Questions |
|
|
| ## Installation problems |
|
|
| ## Environment Permission Error |
|
|
| If you directly import your Unity environment without building it in the editor, |
| you might need to give it additional permissions to execute it. |
|
|
| If you receive such a permission error on macOS, run: |
|
|
| ```sh |
| chmod -R 755 *.app |
| ``` |
|
|
| or on Linux: |
|
|
| ```sh |
| chmod -R 755 *.x86_64 |
| ``` |
|
|
| On Windows, you can find |
| [instructions](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754344(v=ws.11)). |
|
|
| ## Environment Connection Timeout |
|
|
| If you are able to launch the environment from `UnityEnvironment` but then |
| receive a timeout error like this: |
|
|
| ``` |
| UnityAgentsException: The Communicator was unable to connect. Please make sure the External process is ready to accept communication with Unity. |
| ``` |
|
|
| There may be a number of possible causes: |
|
|
| - _Cause_: There may be no agent in the scene |
| - _Cause_: On OSX, the firewall may be preventing communication with the |
| environment. _Solution_: Add the built environment binary to the list of |
| exceptions on the firewall by following |
| [instructions](https://support.apple.com/en-us/HT201642). |
| - _Cause_: An error happened in the Unity Environment preventing communication. |
| _Solution_: Look into the |
| [log files](https://docs.unity3d.com/Manual/LogFiles.html) generated by the |
| Unity Environment to figure what error happened. |
| - _Cause_: You have assigned `HTTP_PROXY` and `HTTPS_PROXY` values in your |
| environment variables. _Solution_: Remove these values and try again. |
| - _Cause_: You are running in a headless environment (e.g. remotely connected |
| to a server). _Solution_: Pass `--no-graphics` to `mlagents-learn`, or |
| `no_graphics=True` to `RemoteRegistryEntry.make()` or the `UnityEnvironment` |
| initializer. If you need graphics for visual observations, you will need to |
| set up `xvfb` (or equivalent). |
|
|
| ## Communication port {} still in use |
|
|
| If you receive an exception |
| `"Couldn't launch new environment because communication port {} is still in use. "`, |
| you can change the worker number in the Python script when calling |
|
|
| ```python |
| UnityEnvironment(file_name=filename, worker_id=X) |
| ``` |
|
|
| ## Mean reward : nan |
|
|
| If you receive a message `Mean reward : nan` when attempting to train a model |
| using PPO, this is due to the episodes of the Learning Environment not |
| terminating. In order to address this, set `Max Steps` for the Agents within the |
| Scene Inspector to a value greater than 0. Alternatively, it is possible to |
| manually set `done` conditions for episodes from within scripts for custom |
| episode-terminating events. |
|
|
| ## "File name" cannot be opened because the developer cannot be verified. |
|
|
| If you have downloaded the repository using the github website on macOS 10.15 (Catalina) |
| or later, you may see this error when attempting to play scenes in the Unity project. |
| Workarounds include installing the package using the Unity Package Manager (this is |
| the officially supported approach - see [here](Installation.md)), or following the |
| instructions [here](https://support.apple.com/en-us/HT202491) to verify the relevant |
| files on your machine on a file-by-file basis. |
|
|