Estou tentando compilar Shogun-toolbox da fonte ... Eu poderia compilá-lo antes , tudo bem, mas cmake detecta python 2.7 como padrão (porque o Ubuntu faz) e eu não posso usar essa biblioteca em python3.6
Como dito no link que eu coloquei antes, a fim de compilar o shogun para ser usado no python 3 eu tenho que especificar que eu estou usando o python 3 usando o cmake dessa maneira:
cmake -DPYTHON_INCLUDE_DIR=/usr/include/python3.3 -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 -DPYTHON_PACKAGES_PATH=/usr/local/lib/python3.3/dist-packages -DPythonModular=ON ..
Mas, então, eu consegui isso na saída do cmake:
Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (Required is exact version "3.6.3")
enquanto eu deveria ter algo parecido com isto (o que eu obtenho ao usar o python2):
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable exact version "2.7.14")
Eu pensei que talvez eu não tenha exatamente o libpython 3.6.3 instalado mas, quando eu executo
sudo apt-get install libpython3.6
Eu recebo esta saída:
libpython3.6 is already the newest version (3.6.3-1ubuntu1).
0 atualizado, 0 recém-instalado, 0 para remover e 10 não atualizado.
Se eu tentar fazer shogun sem resolver esse problema, recebo:
[ 54%] Building CXX object src/interfaces/python/CMakeFiles/_interface_python.dir/shogunPYTHON_wrap.cxx.o
/home/grg121/code/shogun/build/src/interfaces/python
/shogunPYTHON_wrap.cxx:175:11: fatal error: Python.h: No such file or directory
# include <Python.h>
^~~~~~~~~~
compilation terminated.
src/interfaces/python/CMakeFiles/_interface_python.dir/build.make:73: recipe for target 'src/interfaces/python/CMakeFiles/_interface_python.dir/shogunPYTHON_wrap.cxx.o' failed
make[2]: *** [src/interfaces/python/CMakeFiles/_interface_python.dir/shogunPYTHON_wrap.cxx.o] Error 1
CMakeFiles/Makefile2:1219: recipe for target 'src/interfaces/python/CMakeFiles/_interface_python.dir/all' failed
make[1]: *** [src/interfaces/python/CMakeFiles/_interface_python.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2
Python.h não é encontrado, mas ... Se eu executar
locate Python.h
Eu recebo:
/usr/include/python2.7/Python.h
/usr/include/python3.6m/Python.h
E eu estou executando cmake com:
cmake -DINTERFACE_PYTHON=ON BUILD_META_EXAMPLES=ON -DENABLE_TESTING=ON -DCMAKE_BUILD_TYPE=Debug -DBUILD_DASHBOARD_REPORTS=ON -DPYTHON_EXECUTABLE=/usr/bin/python3.6 -DPYTHON_INCLUDE_DIR=/usr/include/Python3.6m -DPYTHON_PACKAGES_PATH=/usr/local/lib/python3.6/dist-packages ..
Então ... não consigo entender o que acontece.
Alguém tem uma ideia do que acontece?
Muito obrigado!