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

Другие вопросы по тегам