Вот что я установил, как описано 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 и импортировать его?
Заранее благодарен!
Другие файлы, которые могут быть необходимы, чтобы выяснить, что пошло не так:
- CMakeLists.txt из Boost.NumPy.
Запятая ('') не требуется в 'набор(). 'Кроме того, вместо модификации 3d-партийных сценариев CMake, предпочтительнее устанавливать переменные, описанные в команде' cmake': 'cmake -DPYTHON_LIBRARY = <...> -DNUMPY_INCLUDE_DIRS = <...>'. –
Tsyvarev
@ Цыварев Спасибо, но он не работает после того, как я запустил его как: '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
Переменная 'NUMPY_INCLUDE_DIRS' устанавливает каталог для файлов заголовков поиска ** (в источниках C/C++). Это не влияет на поиск модулей python. Вам нужно установить переменную [PYTHONPATH] (https://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH) * environment *, чтобы они работали. – Tsyvarev