2016-05-06 3 views
0

Вот что я установил, как описано here:CMake Ошибка «NumPy сбой импорта» при компиляции 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 

Далее я хочу собрать и установить Boost.NumPy. Вначале модуль NumPy не найден. После некоторых поисков я нашел NumPy связанные файлы в ~/anaconda3/lib/python3.5/site-packages/numpy/core/include/numpy вместо что-то вроде /usr/lib, /usr/local/lib, и т.д. Таким образом, в /Boost.NumPy/CMakeList.txt, я добавил эту строку:

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

Но NumPy до сих пор не может быть найдено. Произошла ошибка, когда я запустил cmake -DPYTHON_LIBRARY=$HOME/anaconda3/lib/libpython3.5m.so ../ для создания make-файла для Boost.NumPy. Здесь ошибка:

[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! 

Я попытался заменить NUMPY_INCLUDE_DIRS с некоторыми другими каталогами, но ничего не работает. Что мне следует написать в CMakelists.txt, чтобы сообщить cmake, где найти модуль NumPy и импортировать его?

Заранее благодарен!


Другие файлы, которые могут быть необходимы, чтобы выяснить, что пошло не так:

  1. CMakeLists.txt из Boost.NumPy.
+0

Запятая ('') не требуется в 'набор(). 'Кроме того, вместо модификации 3d-партийных сценариев CMake, предпочтительнее устанавливать переменные, описанные в команде' cmake': 'cmake -DPYTHON_LIBRARY = <...> -DNUMPY_INCLUDE_DIRS = <...>'. – Tsyvarev

+0

@ Цыварев Спасибо, но он не работает после того, как я запустил его как: 'sudo cmake -DPYTHON_LIBRARY = $ HOME/anaconda3/lib/libpython3.5m.so -DNUMPY_INCLUDE_DIRS = $ HOME/anacon da3/lib/python3.5/site-packages/numpy/core/include/numpy ../ '. что я должен писать? – Anonymous

+0

Переменная 'NUMPY_INCLUDE_DIRS' устанавливает каталог для файлов заголовков поиска ** (в источниках C/C++). Это не влияет на поиск модулей python. Вам нужно установить переменную [PYTHONPATH] (https://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH) * environment *, чтобы они работали. – Tsyvarev

ответ

0

И, наконец, это работает! Но я не знаю, почему ... :(

Что я сделал:

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 

Надежда это помогает кому-то еще

Смежные вопросы