Commonroad_dc.pycrcc doesn't work

I got a mistake of python binding compilation(use suggested method of build.sh). I can import commonroad_dc after compilation but can’t import commonroad_dc.pycrcc.

Python 3.6.8 (default, Jan 14 2019, 11:02:34)

[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux

Type “help”, “copyright”, “credits” or “license” for more information.

>>> import commonroad_dc

>>> import commonroad_dc.pycrcc

Traceback (most recent call last):

  • File “”, line 1, in *

ModuleNotFoundError: No module named ‘commonroad_dc.pycrcc’

I have saved the messages that was printed on screen as the attachment called printed msg.txt(the most important message is in line 3145 which I show as below red text). Also I copied the CMakeOutput.log from my build folder. But I can’t upload these texts here.

Building drivability checker…

– The C compiler identification is GNU 7.5.0

– The CXX compiler identification is GNU 7.5.0

– Check for working C compiler: /usr/bin/cc

– Check for working C compiler: /usr/bin/cc – works

– Detecting C compiler ABI info

– Detecting C compiler ABI info - done

– Detecting C compile features

– Detecting C compile features - done

– Check for working CXX compiler: /usr/bin/c++

– Check for working CXX compiler: /usr/bin/c++ – works

– Detecting CXX compiler ABI info

– Detecting CXX compiler ABI info - done

– Detecting CXX compile features

– Detecting CXX compile features - done

– Found PythonInterp: /home/sunyishen/commonroad-drivability-checker/venv/bin/python3.6m (found version “1.4”)

CMake Error at third_party/pybind11/tools/FindPythonLibsNew.cmake:96 (message):

  • Python config failure:*

Call Stack (most recent call first):

  • third_party/pybind11/tools/pybind11Tools.cmake:16 (find_package)*

  • third_party/pybind11/CMakeLists.txt:33 (include)*

– Configuring incomplete, errors occurred!

See also “/home/sunyishen/commonroad-drivability-checker/build/CMakeFiles/CMakeOutput.log”.

.

Could you give me any infomation?

My env:

Ubuntu Server 18.04 LTS

python3.6.8

virtualenv 15.1.0

TIA

Eric

Dear Eric,

We currently only support anaconda and not venv for compilation. Could you possibly install anaconda (such as miniconda), activate it, and then either

a) run the build script again or
b) follow the manual compilation steps from the screenshot (quicker) Error when compiling the CommonRoad Drivability Checker

?

Once it compiles successfully, you should see a pycrcc*.so library in the commonroad_dc folder of the downloaded git repository. Then run (in the git repository root folder):

$ python setup.py install

To install the drivability checker into your current Python environment.

You could also install Anaconda (such as miniconda), install the desired python version there, compile the DrivabilityChecker using anaconda and then install it into your venv environment by running python setup.py install (in the activated venv environment). We will consider the possibility of adding venv support for the build script in the future. You could currently install DrivabilityChecker checker into any python environment (3.6 or higher), but anaconda is necessary for the one-time compilation step to automatically provide and locate the C++ include files for the desired Python version.

Thank you very much for your feedback!

Dear Vitalii_Rusinov,

Thank your for your reply and it works well with miniconda.

Another question:
I use python setup.py bdist_wheel to generate the wheel file.
Is it possible to move it to other ubuntu server easily? I tried it, but it seems need more dependencies like libfcl.so or other 3rd-party libs. Or is it the only way to use conda to build the repo in another ubuntu server right now?

TIA

Eric

My solution is copy the wheel file and libfcl.so.0.6, libccd.so.2, libs11n.so
It works well.

Dear Eric,

You should always recompile and install the third-party dependencies fcl, libccd and libs11n on a target server or use a Docker container for your application.
In case these three libraries that were moved onto the other server were to be incompatible with the other system libraries that they use, the application might crash without explanation. It is important that the same versions of fcl, libccd and libs11n are installed as the ones that were used to compile the DrivabilityChecker. The binary interfaces of the shared libraries fcl, libccd and libs11n may change without warning in future versions. It is possible to install these third-party libraries into a local folder, it does not require root permissions (using the --no-root setting for the build script compiles and installs them into the user home folder).
fcl and libccd are third-party libraries that are under heavy development and are not distributed as binary packages.
Please let us know if you have any other questions.

Dear Vitalii_Rusinov,
Thank you for your reply. I got it.
I will test my porting. And I do know docker is a better choice :slight_smile:

Talking about a docker container:
Is there a plan to add a docker contrainer to the gitlab pipeline?
This would help tremendously if you could download and use a docker with all the necessary requirements installed - regardless of the system being used.