【问题标题】:Pip install on Mac OS gets error: command '/usr/bin/clang' failed with exit code 1Mac OS 上的 Pip 安装出错:命令“/usr/bin/clang”失败,退出代码为 1
【发布时间】:2021-03-01 00:55:09
【问题描述】:

我想在 Mac OS 上通过 pip 安装来安装 google-cloud-pubsub,但出现错误:distutils.errors.CompileError: command '/usr/bin/clang' failed with exit code 1。我运行的命令:pip install google-cloud-pubsub==2.1.0

这里是完整的error message

有什么建议吗?谢谢!

更多信息:

$ python -V
Python 3.9.0

$ pip -V
pip 20.2.4 from /.../lib/python3.9/site-packages/pip (python 3.9)

$ sw_vers
ProductName:    macOS
ProductVersion: 11.0.1
BuildVersion:   20B29

我见过其他类似的案例,但它们并没有解决我的问题。我试过了:

【问题讨论】:

    标签: python-3.x macos google-cloud-platform pip google-cloud-pubsub


    【解决方案1】:

    我也遇到了同样的问题,但我正在使用自制软件来管理我的 Mac 软件包。 我的错误结果与您的相同,但在错误消息中是:

    plyvel/_plyvel.cpp:632:10: fatal error: 'leveldb/db.h' file not found
    #include "leveldb/db.h"
    

    这可以通过安装 leveldb 使用自制软件解决:

    brew install leveldb
    

    这允许满足 plyvel 依赖性。然后为了安全起见,我手动安装了 plyvel:

    pip3 install plyvel
    

    最后因为我正在尝试安装包含 pubsub 的气流库:

    pip3 install apache-airflow-providers-google
    

    【讨论】:

      【解决方案2】:

      您是否尝试在新的 M1 处理器上进行编译?我在安装最新的 grpcio (1.34.0) 时也遇到了问题,错误信息和你一样。

      在不弄乱编译标志和库的情况下,我找到了最适合我的解决方案(在新的 Big Sur Mac 上设置新的 Flask 环境以与 Google Cloud 对话)是这里提供的提示:

      https://osxdaily.com/2020/11/18/how-run-homebrew-x86-terminal-apple-silicon-mac/

      1. 复制您的终端,将其重命名为“Rosetta Terminal”或类似名称
      2. 获取有关新应用的信息,然后选中“使用 Rosetta 打开”复选框
      3. 改用这款新的终端应用程序完成您的工作

      grpcio 以这种方式对我来说安装得很好,而且我预计在这个翻译后的环境中运行我的 Web 应用程序不会出现任何问题(直到我认为这个问题在源库中得到修复)。

      【讨论】:

      • 感谢您的建议,但不幸的是,这对我不起作用-与以前相同的问题。现在试试上面的答案!
      • 会安装x86_64版本的grpcio,以后会遇到一些兼容性问题。
      【解决方案3】:

      尝试在之前添加这些环境变量

      GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true GRPC_PYTHON_BUILD_SYSTEM_ZLIB=true pip install google-cloud-pubsub==2.1.0
      

      如果它不起作用,您可以尝试使用 virtualenv:

      pip install virtualenv
      virtualenv my-test-env
      source my-test-env/bin/activate
      my-test-env/bin/pip install google-cloud-pubsub==2.1.0
      

      因为写在github:

      使用 pip 在 vi​​rtualenv 中安装这个库。 virtualenv 是一个创建隔离 Python 环境的工具。它解决的基本问题是依赖关系和版本之一,以及间接权限。

      使用 virtualenv,可以在不需要系统安装权限的情况下安装这个库,并且不会与已安装的系统依赖项发生冲突。

      【讨论】:

      • 非常感谢,但是,不走运!我犯了同样的错误。我尝试配置 GRPC_PYTHON_BUILD_SYSTEM_RE2 但效果不佳。我只使用venv。还有什么建议吗?
      猜你喜欢
      • 2019-05-08
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      相关资源
      最近更新 更多