Fix loading of Python bindings on Windows when installed in arbitrary directory #3146
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since Python 3.8, Python ignores the
PATH
env variable when trying to load the DLL of compiled Python extensions.We kind ignored the problem until now as if you install in
%CONDA_PREFIX%\Library\bin
in conda environment everything works out of the box, but the problem is present when bipedal-locomotion-framework is installed in an arbitrary install prefix and the Python bindings are found viaPYTHONPATH
env variable, see robotology/robotology-superbuild#1268 .This PR fixes the problem by adding some automatically generated code in the
__init__.py
file that automatically callsos.add_dll_directory
as necessary.As the Python code is generated by CMake it may be a bit cryptic, the actual rendered code is:
Similar to: