zlib недоступен во время установки python 3.7.0 через pyenv, как я могу это исправить?

ОС: MacOS 10.14 бета

Цель: установить 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?


person superuserdo    schedule 04.07.2018    source источник


Ответы (2)


Специально для Python 3.7.0 я успешно сделал следующее:

Brew дает несколько хороших инструкций при запуске info zlib

$ brew info zlib
...
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
person Briford Wylie    schedule 26.12.2018

У меня такая же проблема. Сначала я попытался установить 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

person count_zero    schedule 07.08.2018