2016-07-04 2 views
8

Я пытаюсь построить Python (3.5.2) на OS X El Capitan (10.11.5). Тем не менее, я сталкиваюсь с ошибкой, когда я пытаюсь сделать это make. Похоже, что ошибка связана с .Построение Python 3 на OS X: [Python/importlib.h] Ошибка 133

/usr/local/src/Python-3.5.2 $ make 
if test "no" != "yes"; then \ 
     ./Programs/_freeze_importlib \ 
      ./Lib/importlib/_bootstrap.py Python/importlib.h; \ 
    fi 
dyld: lazy symbol binding failed: Symbol not found: _getentropy 
    Referenced from: /usr/local/src/Python-3.5.2/./Programs/_freeze_importlib 
    Expected in: /usr/lib/libSystem.B.dylib 

dyld: Symbol not found: _getentropy 
    Referenced from: /usr/local/src/Python-3.5.2/./Programs/_freeze_importlib 
    Expected in: /usr/lib/libSystem.B.dylib 

/bin/sh: line 1: 56666 Trace/BPT trap: 5  ./Programs/_freeze_importlib ./Lib/importlib/_bootstrap.py Python/importlib.h 
make: *** [Python/importlib.h] Error 133 
/usr/local/src/Python-3.5.2 $ 

Вы можете увидеть мои шаги on GitHub.

Полный вывод терминала до make сбоя находится в Gist.


Я полностью признаю, что это учебное упражнение, как и Эль Capitan поставляется с Python 2.7.10, и вы можете легко установить Python 3.5.2 с официальным установочным пакетом OS X или с помощью Homebrew.

В документации для Using Python on Unix platforms содержатся инструкции по сборке. В документации для Using Python on a Macintosh конкретно говорится, что необходимо использовать пакет установки OS X.

Однако на Mac должно быть возможно построение.

Python на Macintosh работает Mac OS X в принципе очень похож на Python на любой другой платформе Unix, но есть целый ряд дополнительных функций, таких как IDE и диспетчер пакетов, которые стоит отметить.

На данный момент меня не беспокоят эти дополнительные функции. Просто интересно, почему я получаю ошибку make.

+0

немного несвязанный, учитывая, что вы хотите построить его самостоятельно, но делает 'brew install python3' поможет вам? – Arqu

+1

Да, я пошел с Homebrew, но мне любопытно строить его. – lukejanicke

+0

Добавляет ли '--enable-universalsdk'' configure' решение проблемы? –

ответ

5

Исправлено.

На выходе ./configure я заметил ссылку на /Applications/Xcode-beta.app/Contents/Developer/. Несколько дней назад я установил Xcode 8 (бета). После переключения обратно на обычные инструменты командной строки (с Xcode 7.3.1)

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 

make удалось. Не совсем.

Python build finished successfully! 
The necessary bits to build these optional modules were not found: 
_dbm     _gdbm     _sqlite3   
_ssl     nis     ossaudiodev   
spwd     zlib          
To find the necessary bits, look in setup.py in detect_modules() for the module's name. 

Failed to build these modules: 
_lzma     _tkinter 

Надеюсь, мне не нужны эти модули.

Я поставил полный вывод ./configure и make в этом Gist. Я не включал вывод для make install, поскольку он был слишком длинным и, казалось, только повторял предупреждения и ошибки make.

Примечания

  • Я не использовал --enable-framework или --enable-universalsdk.
+0

У меня такая же ошибка, возможно, по другой причине - хотя с Xcode 8 (на macOS Sierra 10.12.6). То, что работало в моем случае, заключалось в том, чтобы поместить пути по умолчанию ('/ usr/...') перед MacPorts (относительно 'gcc') и очистить' make distclean' внутри [репозитория CPython] (https://github.com/Python/CPython). –

+0

Связанные: https://stackoverflow.com/a/36790088/1959808 –

5

Я думаю, что лучшим решением является xcode-select --install.

Если вы обновили Xcode до 8 (beta), вам нужно снова запустить xcode-select --install, чтобы установить с ним все инструменты сборки.

Я столкнулся с той же проблемой, что и ваш, и я могу успешно установить python через заваривание с помощью Xcode8 после запуска xcode-select --install.

Я надеюсь, что это поможет другим людям с тем же вопросом.

+0

Спасибо. Я получаю Symbol не найден: _getentropy, и это помогло мне решить проблему и продолжить установку python3 (brew install --upgrade python3). – apadana

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