Pyenv не будет устанавливать python 3 на Mac os 11

Попытка установить Python 3.9.0 в Mac OS 11.0.1 с pyenv install 3.9.0.

Полученные результаты:

python-build: use readline from homebrew
Downloading Python-3.9.0.tar.xz...
-> https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz
Installing Python-3.9.0...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 11.0.1 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/n6/q2b78971589bltfczw539flh0000gn/T/python-build.20201114175722.7103
Results logged to /var/folders/n6/q2b78971589bltfczw539flh0000gn/T/python-build.20201114175722.7103.log

Last 10 log lines:
checking for python3... python3
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "darwin"
checking for gcc... clang
checking whether the C compiler works... no
configure: error: in `/var/folders/n6/q2b78971589bltfczw539flh0000gn/T/python-build.20201114175722.7103/Python-3.9.0':
configure: error: C compiler cannot create executables
See `config.log' for more details
make: *** No targets specified and no makefile found.  Stop.

Многие предложения в подобных вопросах, кажется, вращаются вокруг XCode, но xcode-select --install говорит, что инструменты командной строки уже установлены.

Любая помощь приветствуется.


person jasonm    schedule 14.11.2020    source источник


Ответы (3)


Сегодня я столкнулся с той же проблемой, и мне удалось сделать еще один шаг после того, как я погрузился в config.log и проверил это сообщение здесь.

Мне пришлось пойти в противоположном направлении и выполнить sudo xcode-select --switch /Applications/Xcode.app/ после загрузки Xcode из App Store. Если вы запустите clang --version, он должен показать Apple clang version 12.0.0 (clang-1200.0.32.27).

Мне удалось выполнить pyenv install 3.9.0 и обойти ошибку C compiler cannot create executables, но, к сожалению, это все равно не удалось. config.log на этот раз огромен, посмотрю, смогу ли я что-нибудь найти.

РЕДАКТИРОВАТЬ: мне удалось установить 3.8.0, выполнив следующую команду, включая найденный патч здесь.

CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.8.0 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)

Произошло несколько слияний с macOS 11.0, но я предполагаю, что репозитории, используемые для команды pyenv install, просто еще не обновлены. Однако на данный момент этого обходного пути будет достаточно для моих нужд.

person Cornelius    schedule 15.11.2020
comment
Спасибо, это прекрасно сработало. Я заметил, что для 3.7 мне нужен был patch, а для 3.9 - нет (этого хватило со всеми флагами). - person MEMark; 29.11.2020

Я успешно установил python 3.6.13 на macbook m1 с помощью этой команды.

CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.13 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
person Alexandr S.    schedule 18.02.2021

Проверьте, где находится ваш clang:

which clang

Он должен быть где-то под /usr/bin/clang. В моем случае с давних времен он исходил от Miniconda, который был искусственно помещен в командную строку PATH. Исправьте это, чтобы clang исходил из Xcode, и это должно подтолкнуть вас к установке Python на Mac.

person Sergey Shcherbakov    schedule 26.01.2021