The most challenging part of the setup is to compile all the dependencies and modules to be compatible with a) Unreal Engine in the server-side, and b) Python in the client-side.
In Linux, we compile CARLA and all the dependencies with clang-8.0 and C++14 standard. We however link against different runtime C++ libraries depending on where the code going to be used, since all the code that is going to be linked with Unreal Engine needs to be compiled using `libc++`.
libboost-python-dev, pip>=20.3, wheel, and auditwheel.
Command:
```sh
make PythonAPI
```
Creates two files that each contain the client library and correspond to the supported Python version on the system. One file is a `.whl` file and the other is an `.egg` file. This allows for the option of two different, mutually exclusive ways to use the client library.
>__A. .whl file__
>>The `.whl` is installed using the command:
>> pip install <wheel_file>.whl
>>There is no need to import the library path directly in scripts as is required in previous versions or `.egg` files (see section [__Versions prior to 0.9.12__](#versions-prior-to-0912)); `import carla` is sufficient.
>__B. .egg file__
>>See the section [__Versions prior to 0.9.12__](#versions-prior-to-0912) for more information.
### Versions prior to 0.9.12
Compiled using Python's `setuptools` ("setup.py"). Currently requires the following to be installed in the machine: Python, libpython-dev, and