zlib недоступен во время установки Python 3.7.0 через pyenv, как я могу это исправить?
ОС: MacOS 10.14 Beta
Цель: установить Python 3.7.0 через PYENV
При попытке установить python 3.7.0 через pyenv я получаю эту ошибку, как я могу это исправить?
Last 10 log lines:
File "/private/tmp/python-build.20180704152803.38921/Python-3.7.0/Lib/ensurepip/__main__.py", line 5, in <module>
sys.exit(ensurepip._main())
File "/private/tmp/python-build.20180704152803.38921/Python-3.7.0/Lib/ensurepip/__init__.py", line 204, in _main
default_pip=args.default_pip,
File "/private/tmp/python-build.20180704152803.38921/Python-3.7.0/Lib/ensurepip/__init__.py", line 117, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/private/tmp/python-build.20180704152803.38921/Python-3.7.0/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip._internal
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
Шаги, предпринятые для исправления:
1) Переустановите XCODE
2) Переустановите инструменты командной строки XCODE
3) Читайте похожие ошибки при переполнении стека
Альтернативные вопросы:
1) zlib должен быть предустановлен, с какими проблемами я могу столкнуться?
2) Какой альтернативный способ вручную установить python в pyenv, который также будет распознаваться pynev?
1 ответ
Специально для Python 3.7.0 я сделал следующее с успехом:
Brew дает хорошие инструкции при установке zlib
$ brew install zlib
==> Pouring zlib-1.2.11.mojave.bottle.tar.gz
==> Caveats
zlib is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
For compilers to find zlib you may need to set:
export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
...
Поэтому, учитывая эти инструкции, я просто вырезал / вставил FTW:)
$ export LDFLAGS="-L/usr/local/opt/zlib/lib"
$ export CPPFLAGS="-I/usr/local/opt/zlib/include"
$ pyenv install 3.7.0 # Succeeded
У меня такая же проблема. Сначала я попытался установить Python вручную с
./configure --prefix /usr/local/var/pyenv/versions/3.5.5/
make
make install
Сборка завершена, но я получил ошибки об openssl и zlib. Затем я попытался снова с измененной средой сборки:
export CPPFLAGS="-I/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I$(brew --prefix openssl)/include"
export LDFLAGS="-L/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib -L$(brew --prefix openssl)/lib"
Что удалось.
Наконец я запустил в той же оболочке (с обеими экспортированными переменными):
pyenv install 3.5.5
Что тоже получилось:-) HTH