繁体   English   中英

Pip 在 Mac OS 上安装出现错误:命令“/usr/bin/clang”失败,退出代码为 1

[英]Pip install on Mac OS gets error: command '/usr/bin/clang' failed with exit code 1

我想在 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

这里是完整的错误信息

有什么建议吗? 谢谢!

更多信息:

$ 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

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

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

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,可以在不需要系统安装权限的情况下安装这个库,并且不会与已安装的系统依赖项发生冲突。

我刚刚遇到了同样的问题,但我正在使用自制软件来管理我的 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

您是否尝试在新的 M1 处理器上进行编译? 我在安装最新的 grpcio (1.34.0) 时也遇到了麻烦,错误消息与您相同。

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

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

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

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

如果您使用的是 Mac M1 芯片,请执行以下对我有用的操作。

export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1

感谢以下回答。 如何在 Apple M1 Silicon 笔记本电脑上安装 GRPCIO?

我最终只使用了 Python 3.8.13,由 pyenv 和 pyenv-virtualenv 管理。

如果你没有 pyenv:

brew install pyenv pyenv-virtualenv

添加

export PATH="$HOME/.pyenv/bin:$PATH"
export PATH="$HOME/.pyenv/shims:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

到你的 ~/.zshrc 如果它不存在, source ~/.zshrc

pyenv install 3.8.13
pyenv global 3.8.13
pyenv virtualenv 3.8.13 venv
pyenv activate venv
pip install grcpio

我在使用 Python 3.8 的 M1 Mac 上尝试awsiotsdk时遇到了类似名称的clang问题

如果它与阅读本文的任何人相关,则根本问题是对awscrt的依赖。 这个特定的库(在 PyPi 上)包含 M1(“xxx_universal2.whl”)和 Python 3.8 组合的内置发行版。

解决方案是使用pyenvpipenv (我最喜欢的模式)来强制这个项目使用支持的组合(在我们的例子中: Python 3.9 和 M1

我正在使用pyenv并面临类似的问题。 然后我做了以下事情,它奏效了。

一、升级pip

pip3 install --upgrade pip

然后,更新设置工具:

python3 -m pip install --upgrade setuptools

就我而言(Mac M1 Monterey OS)的工作解决方案:

brew install openssl re2
LDFLAGS="-L$(/opt/homebrew/bin/brew --prefix openssl)/lib -L$(/opt/homebrew/bin/brew --prefix re2)/lib" CPPFLAGS="-I$(/opt/homebrew/bin/brew --prefix openssl)/include -I$(/opt/homebrew/bin/brew --prefix re2)/include" GRPC_BUILD_WITH_BORING_SSL_ASM="" GRPC_PYTHON_BUILD_SYSTEM_RE2=true GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true GRPC_PYTHON_BUILD_SYSTEM_ZLIB=true pip install grpcio

归功于https://github.com/grpc/grpc/issues/24677#issuecomment-862413344

我开始有那个问题。 这条评论之后,我使用pyenv卸载了我的 python 3.9.12 并再次重新安装。

顺便说一句,我有 M1 和 macOS 12.6。

首先停用当前的virtualenv ,然后:

pyenv uninstall 3.9.12
pyenv install 3.9.12
pyenv local 3.9.12 # to set your local python version to the newly installed python
poetry shell
pip install grpcio # or poetry install grpcio

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM