macOS 下使用 pyenv 编译并使用 Python 3.7 或更新版本

因为不同的项目可能用不同的 Python 版本,于是我用 pyenv 来进行 Python 的多版本管理,而不是用系统自带的 Python 或 homebrew 的 Python。

然而在用 pyenv 编译对应的 Python 版本时,可能会遇到如下错误:

zipimport.ZipImportError: can't decompress data; zlib not available

或者

WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?

这时你需要检查一下 zlib 或 sqlite3 是不是已经安装,但即使已经通过 homebrew 安装了以上 Package,依然会出现这些错误。这是因为 pyenv 无法找到 homebrew 安装的库的路径,需要手动指定:

export LDFLAGS=”-L/usr/local/opt/zlib/lib -L/usr/local/opt/sqlite/lib”

export CPPFLAGS=”-I/usr/local/opt/zlib/include -I/usr/local/opt/sqlite/include”

这样,zlib 的问题和 Sqlite3 的问题都会解决了。

你也可能会遇到其他问题:比如 OpenSSL,解决方式是类似的,可以看:https://github.com/pyenv/pyenv/wiki/common-build-problems


本站架设于 Linode

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址