簡體   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