通过pyenv安装python 3.7.0时zlib不可用,我该如何解决这个问题?

sup*_*rdo 7 zlib virtualenv python-3.x pyenv xcode-command-line-tools

操作系统: MacOS 10.14 Beta

目标:通过PYENV安装Python 3.7.0

当试图通过pyenv安装python 3.7.0我得到这个错误,我该如何解决这个问题?

    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
Run Code Online (Sandbox Code Playgroud)

尝试修复的步骤:

1)重新安装XCODE

2)重新安装XCODE命令行工具

3)读取堆栈溢出上的类似错误

替代问题:

1) zlib应该预先安装,我可能会遇到什么样的问题?

2)将python手动安装到pyenv中的另一种方法是什么?pynev也可以识别?

小智 0

我有同样的问题。首先我尝试手动安装 python

./configure --prefix /usr/local/var/pyenv/versions/3.5.5/
make
make install
Run Code Online (Sandbox Code Playgroud)

构建已完成,但我也遇到了有关 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"
Run Code Online (Sandbox Code Playgroud)

哪个成功了。

最后我在同一个 shell 中运行(带有两个导出的变量):

pyenv install 3.5.5
Run Code Online (Sandbox Code Playgroud)

这也成功了:-) HTH