![](/img/trans.png)
[英]pip3 install pgzero --- leads to command '/usr/bin/gcc' failed with exit code 1 (Python 3.9; macOS 10.15.7)
[英]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 在 virtualenv 中安装这个库。 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/
grpcio 以这种方式为我安装得很好,而且我预计在这个翻译的环境中运行我的 Web 应用程序不会出现任何问题(直到我认为这个问题在源库中得到修复)。
如果您使用的是 Mac M1 芯片,请执行以下对我有用的操作。
export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
我最终只使用了 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 组合的内置发行版。
解决方案是使用pyenv
和pipenv
(我最喜欢的模式)来强制这个项目使用支持的组合(在我们的例子中: 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.