2016-05-06 5 views
0

Hier ist, was ich wie beschrieben here installiert:CMake Fehler „NumPy Importfehler“ beim Kompilieren Boost.Numpy

1. Python 3.5 (Anaconda3 2.4.3) 
    Chainer 1.5.0.2 
    Cython 0.23.4 
    NumPy 1.10.1 
    tqdm 
2. OpenCV 3.0.0 
3. lmdb 0.87 
4. Boost 1.59.0 

Als nächstes möchte ich Boost.NumPy kompilieren und zu installieren. Am Anfang konnte das NumPy-Modul nicht gefunden werden. Nach einiger Suche fand ich NumPy bezogene Dateien in ~/anaconda3/lib/python3.5/site-packages/numpy/core/include/numpy statt so etwas wie /usr/lib, /usr/local/lib usw. Daher in /Boost.NumPy/CMakeList.txt ich diese Zeile hinzugefügt:

set(NUMPY_INCLUDE_DIRS, /home/graphics/anaconda3/lib/python3.5/site-packages) 

Aber NumPy konnte noch nicht gefunden werden. Ein Fehler ist aufgetreten, während ich cmake -DPYTHON_LIBRARY=$HOME/anaconda3/lib/libpython3.5m.so ../ ausführen, um das Makefile für Boost.NumPy zu generieren. Hier ist der Fehler:

[email protected]:~/usr/Boost.NumPy/build$ sudo cmake -DPYTHON_LIBRARY=$HOME/anaconda3/lib/libpython3.5m.so ../ 
-- The C compiler identification is GNU 4.9.2 
-- The CXX compiler identification is GNU 4.9.2 
-- 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 
-- 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 
-- Found PythonInterp: /usr/bin/python3.5 (found suitable version "3.5.1", minimum required is "3.5") 
-- Found PythonInterp: /usr/bin/python3.5 (found version "3.5.1") 
-- Found PythonLibs: /home/graphics/anaconda3/lib/libpython3.5m.so 
CMake Error at libs/numpy/cmake/FindNumPy.cmake:61 (message): 
    NumPy import failure: 

    Traceback (most recent call last): 

    File "<string>", line 1, in <module> 

    ImportError: No module named 'numpy' 

Call Stack (most recent call first): 
    CMakeLists.txt:30 (find_package) 


-- Configuring incomplete, errors occurred! 

ich versucht habe NUMPY_INCLUDE_DIRS mit einigen anderen Verzeichnissen zu ersetzen, aber nichts funktioniert. Was soll ich an die CMakelists.txt schreiben, um cmake zu sagen, wo NumPy Modul zu finden ist und es importieren?

Vielen Dank im Voraus!


Andere Dateien, die erforderlich sein könnten, um herauszufinden, was schief geht:

  1. CMakeLists.txt von Boost.NumPy.
+0

Comma (',') in nicht erforderlich '() gesetzt. Anstelle von Änderungen an 3D-Party-CMake-Skripten ist es auch vorzuziehen, die Variablen in der beschriebenen Umgebung in cmake zu setzen: cmake -DPYTHON_LIBRARY = <...> -DNUMPY_INCLUDE_DIRS = <...> '. – Tsyvarev

+0

@Tsyvarev Danke, aber es funktioniert nicht, nachdem ich es wie folgt ausgeführt habe: 'sudo cmake -DYPTHON_LIBRARY = $ HOME/anaconda3/lib/libpython3.5m.so -DNUMPY_INCLUDE_DIRS = $ HOME/anacon da3/lib/python3.5/Site-Pakete/numpy/core/include/numpy ../ '. was sollte ich schreiben? – Anonymous

+0

Variable 'NUMPY_INCLUDE_DIRS' setzt Verzeichnis für die Suche ** Header-Dateien ** (in C/C++ Quellen). Es hat keine Auswirkungen auf die Suche von Python-Modulen. Sie müssen [PYTHONPATH] (https://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH) * Umgebungsvariable * setzen, damit die Dinge funktionieren. – Tsyvarev

Antwort

0

Endlich funktioniert es! Aber ich weiß nicht, warum ... :(

Was ich tat:

1. I reinstalled numpy to /usr/lib/python3.5/site-packages (previously, I installed it to ~/anaconda3/lib/python3.4/site-packages) 
1.1 I also added ~/anaconda3/lib/python3.4/site-packages/numpy/include to $PYTHONPATH and $PATH 
2. I ran these commands in Python: 
    >>>import numpy 
    And I found it returns no error! 
3. I removed previously compiled files in directory build, and rebuilt. Finally it worked 

hoffen, dass diese hilft jemand anderes