无法在 pyenv virtualenv 中安装 lektor:`clang' 存在于这些(其他)Python 版本中

Cannot install lektor in pyenv virtualenv: `clang' exists in these (other) Python versions

我正在尝试使用 pyenv virtualenvlektor 安装到新的 virtualenv 中。我使用 Python 3.7.0 创建一个新的 virtualenv 没问题,但是当我尝试 pip install lektor 时,我遇到构建失败 watchdog 和以下错误消息:

pyenv: clang: command not found

The `clang' command exists in these Python versions:
  anaconda3-5.0.0

error: command 'clang' failed with exit status 127

我了解到anaconda3版本有clang,但我也安装了/usr/bin的版本。 which -a clang 的输出是:

$PYENV_ROOT/shims/clang
/usr/bin/clang

我可以手动设置 shim 指向 usr/bin 吗?或者这个问题有不同的解决方案吗?

这是一个糟糕的解决方案,但它确实有效。把clang的shim拿过来临时移动一下(比如mv $PYENV_ROOT/shims/clang ~/Desktop),可以安装watchdog,然后把clang的shim移回原来的位置。一个更好的选择是 pyenv 如果 shim 没有指向给定环境中的任何地方,则默认为程序的系统版本…

备选方案

pyenv 插件 pyenv-which-ext 通过在正常 $PATH 中检查实用程序是否存在来解决这个 class 问题存在于当前环境中。通过 Homebrew 快速安装,解决了我所有的问题。