在”大苏尔”或pyarrow2.0.0中出现时,如果”需要macOS 11或更高版本!”该怎么办


介绍

这是经常出现的环境问题,但这一次是由于Mac操作系统升级到Big Sur引起的。

故障摘要

  • 在Big Sur上将pyenv与python结合使用时,出现神秘错误macOS 11 or later required !,并且python崩溃了
  • 上面是通过使用python3.9.1解决的,但随后不支持pyarrow且无法安装。
  • 无法安装grpcio
  • 我在numpy周围遇到错误!

由于发生

,因此我将写出解决方法。
我认为有一天没有必要,但是到目前为止很烦人。

个人补救

处理macOS 11 or later required !

繁殖方法

看起来像这样。

1
2
3
% python -c "import tkinter; r = tkinter.Tk()"  
macOS 11 or later required !
zsh: abort      python -c "import tkinter; r = tkinter.Tk()"

我不使用Tk!您可能会想,但是matplotlib或其他东西会尝试使用它。
*嗯,也许我应该避免它...

补救措施

(也许是在使它成为Big Sur之后)似乎它发生在通过pyenv安装的Python中,但通过将python更改为3.9.1得以解决。如果您在brew中含有pyenv,它将如下所示:

1
2
3
4
5
6
7
8
9
% brew install tcl-tk   #  これが必要なのか、は未確認ですがそう書いてあるところがあった
% brew upgrade pyenv
% pyenv install -l | grep 3.9  # 3.9系を探す
  3.9.0
  3.9-dev
  3.9.1
  miniconda-3.9.1
  miniconda3-3.9.1
% pyenv install 3.9.1    # 3.9.1 が一番新しいのでそれにする

检查是否可以治愈

1
2
3
4
5
6
7
% pyenv local 3.8.7  # エラーが出るVersion
% python -c "import tkinter; r = tkinter.Tk()"  
macOS 11 or later required !
zsh: abort      python -c "import tkinter; r = tkinter.Tk()"
% pyenv local 3.9.1
% python -c "import tkinter; r = tkinter.Tk()"  
### エラーが出ない! ###

当您无法执行python3.9系列...?

即使

,并非所有项目都可以轻松地更新到3.9系列,在这种情况下,通过合法安装程序安装的Python是可以的(未确认)。

pyarrow2.0.0不支持python3.9!

pyathenapandas扩展之类的库,似乎需要

pyarrow,并且使用它们会受到影响。

我通常无法通过点子或诗歌来安装它,因此我将强制安装3.8系列轮毂(可能它可以正常工作)。将cp38部分更改为cp39似乎很好。这是一种可怕的方法,但无济于事...

1
2
3
% curl -LO https://files.pythonhosted.org/packages/14/75/9f116c8d0774ed170c59c87649d3e74dbdaf3318d72a09171c6f4634c7a7/pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl
% mv pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
% pip install pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl

现在,当您尝试使用诗歌或pipenv进行安装时,将不会发生任何事情,并且不会发生任何错误,因为已经安装了它们。

无法安装grpcio

一开始我遇到了大苏尔(Big Sur)周围的麻烦,所以我忘记了当时的情况,但是最好事先将其说明如下。

1
2
% pip install --upgrade pip setuptools wheel
% pip install --no-cache-dir --force-reinstall -Iv grpcio==1.34.0

我在numpy周围遇到错误!

显然,加速器由于某种原因出错。
这有点不好,因为它会在运行时而不是安装时导致错误。
通过这样安装,我可以避免它。

1
2
% brew install openblas
% OPENBLAS="$(brew --prefix openblas)" pip install numpy

概要

最近,我用诗歌来管理它,但毕竟,我设法按照以下过程进行安装。

1
2
3
4
5
6
7
% pyenv local 3.9.1
% poetry run pip install --upgrade pip setuptools wheel
% poetry run pip install --no-cache-dir --force-reinstall -Iv grpcio==1.34.0
% curl -LO https://files.pythonhosted.org/packages/14/75/9f116c8d0774ed170c59c87649d3e74dbdaf3318d72a09171c6f4634c7a7/pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl
% mv pyarrow-2.0.0-cp38-cp38-macosx_10_13_x86_64.whl pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
% poetry run pip install pyarrow-2.0.0-cp39-cp39-macosx_10_13_x86_64.whl
% OPENBLAS="$(brew --prefix openblas)" poetry install

在末尾

我认为这是一个建造错误或一个需要花费大量时间的敌人。