Я пытаюсь скомпилировать boost :: python с локальной установкой Python 3.4.
Я начал с установки Python, загрузив исходный код и выполнив следующую команду:
./configure --prefix=$HOME/local --disable-shared
make
make install
Это устанавливает Python в $HOME/local directory
, Поскольку интерпретатор Python называется python3
Я создал ссылку с именем python
в $HOME/local/bin
указывая на python3
,
Моя переменная окружения PATH начинает поиск в $HOME/local/bin
во-первых, теперь набираю python
дает мне переводчик, который я только что установил.
Затем я попытался установить Boost (1.57) с поддержкой Python с помощью следующей команды:
./bootstrap.sh --prefix=$HOME/local --with-python-root=$HOME/local --with-libraries=python
Эта команда правильно определяет установку Python (в выводе «Я вижу версию Python … 3.4»).
При беге ./b2
однако при компиляции библиотек я получил фатальную ошибку:
pyconfig.h: Aucun fichier ou dossier de ce type
(по-английски: pyconfig.h: no such file or directory
)
Я вошел в $HOME/local/include
где он должен быть и обнаружил, что в то время как Boost пытается найти включаемые файлы в $HOME/local/include/python3.4
, они на самом деле расположены в $HOME/local/include/python3.4m
(обратите внимание на «м» в конце). Аналогично, библиотека Python называется libpython3.4m.a
,
Мне удалось ускорить компиляцию, создав символическую ссылку python3.4 -> python3.4m в каталоге include и символическую ссылку libpython3.4.a -> libpython3.4m.a.
Теперь это действительно не чисто. Мой вопрос: почему boost не обнаруживает включаемые файлы непосредственно в python3.4m? Или почему Python устанавливает свои файлы в python3.4m вместо python3.4? Я пропускаю шаг в настройке любого из них?
Задача ещё не решена.