Tudat / tudat

NOTE: This Tudat version is no longer supported. See https://docs.tudat.space/en/stable/ and https://github.com/tudat-team/tudat-bundle for the new version
BSD 3-Clause "New" or "Revised" License
87 stars 143 forks source link

Unable to build PyGMO; Could not find NumPy #631

Closed JaHoff closed 4 years ago

JaHoff commented 4 years ago

Hey all,

I've been trying to build a TUDAT environment using Pygmo for my thesis work, but I am running into this issue where the script in FindNumpy.cmake can't succesfully identify my numpy library. On both my desktop and laptop I run in to the following build errors:

D:\ProgramData\Anaconda3\lib\site-packages\numpy__init__.py:140: UserWarning: mkl-service package failed to import, therefore Intel(R) MKL initialization ensuring its correct out-of-the box operation under condition when Gnu OpenMP had already been loaded by Python process is not assured. Please install mkl-service package, see http://github.com/IntelPython/mkl-service from . import _distributor_init

D:\ProgramData\Anaconda3\lib\site-packages\numpy__init__.py:140: UserWarning: mkl-service package failed to import, therefore Intel(R) MKL initialization ensuring its correct out-of-the box operation under condition when Gnu OpenMP had already been loaded by Python process is not assured. Please install mkl-service package, see http://github.com/IntelPython/mkl-service from . import _distributor_init

CMake Error at D:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message): Could NOT find NumPy (missing: PYTHON_NUMPY_INCLUDE_DIR) (found version "") Call Stack (most recent call first):

D:/Program Files/CMake/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE) pagmo2/cmake_modules/FindNumPy.cmake:42 (find_package_handle_standard_args) pagmo2/CMakeLists.txt:169 (find_package)

Both the desktop and laptop have Python 3.7 environments set up using Anaconda3 with the latest version of NumPy (1.18.1). These environments also have the latest version of the mkl-service libraries installed through conda, yet these also seem to fail to import considering the warnings.

Full build message log: Message log.txt CMake error log: CMakeError.log CMakeOutput log: CMakeOutput.log

Apart from importing Python the TUDAT installations run without issue, I can build any other environment besides one using Pygmo. Within the Python environments themselves numpy and mkl libraries work as usual, but I can't get cmake to succesfully import these packages. Any suggestions on how to resolve this are welcome!

Kind regards,

Jurriaan van 't Hoff

DominicDirkx commented 4 years ago

Hi Jurriaan,

At the moment, there is no real interface between Tudat and Pygmo, as we are currently a C++ only libtary. Our Python interface is under construction, but not yet up and running. So, if you want to use Pagmo, that's all well and possible, if you want to use Pygmo in some way, that is currently outside of the range of aspects that we provide support for,

Best,

Dominic

JaHoff commented 4 years ago

Hey Dominic,

Thank you for your reply, it is unfortunate that the interface is still under construction. I will re-evaluate the possibility of using pagmo instead of pygmo, to avoid future headaches.

I managed to resolve the issue just now, so I'll also append the fix for future reference: The described problems stems from the numpy 1.18.1 distribution sourced from conda. Uninstalling the conda distribution and re-installing the latest numpy using pip fixed the error described, downgrading to an earlier conda version also works.

DominicDirkx commented 4 years ago

Hi Jurriaan,

Many thank for posting your fix here,

Dominic