Создание графического инструмента на OSX с Python 3.4
Я попытался установить graph-tool на Mac OSX 10.10, используя homebrew. Процесс сборки brew работает нормально, но когда я пытаюсь импортировать Graph-Tool, я получаю сообщение об ошибке, описанное в этом вопросе. Другая проблема с homebrew заключается в том, что я всегда собираю graph-tool для python 2.7, и он устанавливает пакеты в папку Python 2.7 sit-packages. Но я хочу использовать его с Python 3.4. Это причины, по которым я попытался построить Graph-Tool из исходного кода.
./configure
Команда также автоматически использует Python 2.7. Так что я передал ему желаемую версию Python с ./configure PYTHON=python3.4
Затем он обнаруживает правильную версию, а также связанные пути, но происходит сбой со следующей ошибкой:
настроить: ошибка:
Не удалось связать тестовую программу с Python. Возможно, основная библиотека Python была установлена по какому-то нестандартному пути к библиотеке. Если это так, передайте его для настройки через переменную среды LDFLAGS.
Пример: ./configure LDFLAGS="-L/usr/ нестандартный путь / python / lib"================================================== ==================== ОШИБКА! Возможно, вам придется установить версию для разработки пакета Python для вашего дистрибутива. Точное название этого пакета варьируется среди них.
================================================== ====================
Ошибка происходит с и без PYTHON
набор переменных. Из вывода ./configure
Я вижу, что все работает хорошо, за исключением последней строки, которая говорит:
проверка согласованности всех компонентов среды разработки Python... нет
Что означает приведенная выше строка и как правильно установить Graph-Tool на моем компьютере?
3 ответа
Сообщение об ошибке объясняет , что именно нужно сделать. Поскольку python был установлен по нестандартному пути, вам нужно передать флаг LDFLAGS="-L/usr/non-standard-path/python/lib"
указывая на каталог, в котором расположены библиотеки Python. Это скорее всего "/usr/local/lib"
, если вы используете доморощенный.
Я получал эту ошибку, когда пытался установить graph-tool
используя устаревший autoconf
/ automake
/ pkg-config
комбинация (устанавливается с помощью yum
в CentOS 5.10). Установка этих пакетов из исходного кода устранила проблему... хотя я не уверен, как это связано с моей установкой Python....
Это сработало для меня, передав переменную PYTHON_EXTRA_LDFLAGS="-Wl,-stack_size,1000000 -F/usr/local/Cellar/python3/3.6.3/Frameworks -framework CoreFoundation"
,
В вашем случае это будет путь к homebrew
установка python3.4
,
Я узнал, что в config.log
, сообщение об ошибке показывает следующее:
configure:19023: checking python extra libraries
configure:19030: result: -ldl -framework CoreFoundation
configure:19037: checking python extra linking flags
configure:19044: result: -Wl,-stack_size,1000000 -framework CoreFoundation Python.framework/Versions/3.6/Python
configure:19051: checking consistency of all components of python development environment
configure:19079: gcc -o conftest -g -O2 -DNDEBUG -I/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/include/python3.6m -F/usr/local/Cellar/python3/3.6.3/Frameworks/ -Wl,-stack_size,1000000 -framework CoreFoundation Python.framework/Versions/3.6/Python conftest.c -L/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.6/lib -lpython3.6m -ldl -framework CoreFoundation -ldl -framework CoreFoundation >&5
clang: error: no such file or directory: 'Python.framework/Versions/3.6/Python'
Ошибка, кажется, путь 'Python.framework/Versions/3.6/Python'
, что в homebrew
установка не существует. Я ищу тот же путь в config.log
и я нашел эту строку:
PYTHON_EXTRA_LDFLAGS="-Wl,-stack_size,1000000 -framework CoreFoundation Python.framework/Versions/3.6/Python"
Таким образом, решение для меня было передать эту переменную с правильным путем.