LoginSignup
4
6

More than 1 year has passed since last update.

macOS Big Surでgrpcioやcryptographyのインストールに失敗したらSYSTEM_VERSION_COMPAT=1をつける

Last updated at Posted at 2021-05-03

tl;dr

SYSTEM_VERSION_COMPAT=1 pip install grpcio cryptography

問題が生じた環境

  • macOS Big Sur (11.2.3)
  • Python 3.8.0
  • pip 20.2.4
  • grpcio 1.37.0
  • cryptography 3.4.6

経緯

Pythonのパッケージ解決をしていたら grpciocryptography だけインストールに失敗した。

原因

原因は、macOSのバージョンとその判別処理のせいらしい。
macOSのバージョンは長らく10系だったが、Big Surになりバージョンが11系になった。
grpcioやcryptographyは11系のサポートをしていないためにエラーが返り、インストールに失敗するのだ。

解決方法

今回はgrpcioが引っかかったが、実は他のパッケージやPython以外のソフトウェアでも似たような問題は起こりうる。
Appleもそれは見越していて、このような問題の対処のために SYSTEM_VERSION_COMPAT という環境変数を用意している。

SYSTEM_VERSION_COMPAT=1 という環境変数を定義しておくと、Big Sur(11系)であってもOSのバージョンを10系列であるかのように反応してくれる。

今回の場合であれば、

SYSTEM_VERSION_COMPAT=1 pip install grpcio cryptography

として実行すればよい。

pipenvやpoetryを使っている場合も同様で、

  • SYSTEM_VERSION_COMPAT=1 pipenv install grpcio cryptography
  • SYSTEM_VERSION_COMPAT=1 pipenv install
  • SYSTEM_VERSION_COMPAT=1 poetry add grpcio cryptography
  • SYSTEM_VERSION_COMPAT=1 poetry install

などなど、とにかくコマンドの頭に SYSTEM_VERSION_COMPAT=1 をつけておけばよい。

2021/09/17追記

cryptographyもだめだったので追加

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6