Pip install matplotlib 在 M1 Mac 上失败

Posted

技术标签:

【中文标题】Pip install matplotlib 在 M1 Mac 上失败【英文标题】:Pip install matplotlib fails on M1 Mac 【发布时间】:2021-05-13 06:29:12 【问题描述】:

我在 M1 Mac 上通过 pip 安装 matplotlib 时遇到困难。我通过 Homebrew 安装了 Python 3.9.1。

当运行 pip3 install matplotlib 时,安装程​​序会尝试安装最新版本 matplotlib 3.3.4。安装程序卡住并在一段时间后打印出一条巨大的错误消息。在此之后,它尝试安装 3.3.3 版,之后再次发生相同的情况,依此类推。出了什么问题?

这里是一些错误信息:

    william@Williams-MacBook-Pro ~ % pip3 install matplotlib
Collecting matplotlib
  Using cached matplotlib-3.3.4.tar.gz (37.9 MB)
    ERROR: Command errored out with exit status 1:
     command: /opt/homebrew/opt/python@3.9/bin/python3.9 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/yb/rgjfc7ws25ddwd07x96f4fmw0000gn/T/pip-install-h7oltt2f/matplotlib_1ad1e28a38b14b40ae2bcaa7f9b01cab/setup.py'"'"'; __file__='"'"'/private/var/folders/yb/rgjfc7ws25ddwd07x96f4fmw0000gn/T/pip-install-h7oltt2f/matplotlib_1ad1e28a38b14b40ae2bcaa7f9b01cab/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/yb/rgjfc7ws25ddwd07x96f4fmw0000gn/T/pip-pip-egg-info-0jjax4jc
         cwd: /private/var/folders/yb/rgjfc7ws25ddwd07x96f4fmw0000gn/T/pip-install-h7oltt2f/matplotlib_1ad1e28a38b14b40ae2bcaa7f9b01cab/
    Complete output (2287 lines):
      ERROR: Command errored out with exit status 1:
       command: /opt/homebrew/opt/python@3.9/bin/python3.9 /opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /var/folders/yb/rgjfc7ws25ddwd07x96f4fmw0000gn/T/tmp3p0is_vc
           cwd: /private/var/folders/yb/rgjfc7ws25ddwd07x96f4fmw0000gn/T/pip-wheel-5rqmhbah/numpy_cefeff1e3acc4faea4c06d0f4597b2da

【问题讨论】:

您正在从源代码构建,但可能缺少构建依赖项。 【参考方案1】:
python3 -m pip install cython   
python3 -m pip install --no-binary :all: --no-use-pep517 numpy
brew install libjpeg
python3 -m pip install matplotlib

为我工作,此时它安装了 numpy 1.20.1。

与 Homebrew 相同的 Python 版本 (3.9.1)。

【讨论】:

工作得很好。谢谢你。 OSX:10.2.3 Python:3.9.4 在 vi​​rtualenv 中。安装了 numpy 1.20.2、matplotlib 3.4.1、cython 0.29.22。熊猫是个问题。我使用了与 numpy 相同的行。它安装了 pandas 1.2.4 好的。供参考:``` black 20.8b1 Cython 0.29.22 flake8 3.9.0 isort 5.8.0 jupyter 1.0.0 matplotlib 3.4.1 numpy 1.20.2 pandas 1.2.4 pylint 2.7.4 ``` 不适用于 macOS BigSur 11.3、Python 3.9.6。解决方案是安装旧版本:sudo pip3 install matplotlib==3.2.2,尽管当前最新版本是 matplotlib==3.4.2 这是最终的解决方案吗?我在 python 3.9.4【参考方案2】:

    在此处为 arm64 (Apple Silicon) 安装 Miniforge 最新安装程序:installer here

    现在为您拥有的任何版本创建一个 conda 环境(我正在运行 3.9.2)

conda create -n cenv python=3.9.2
conda activate cenv
conda install matplotlib

在撰写本文时,如果您尝试从 Wheels/pip 开始,您将努力让所有不同的软件包正常工作。

【讨论】:

【参考方案3】:

尝试在我的 M1 Macbook(Big Sur 11.6,python 3.9.7)上安装 matplotlib,我得到:

Invalid configuration `arm64-apple-darwin20.6.0': machine `arm64-apple' not recognized`

在此评论的帮助下,我能够解决问题并安装 matplotlib:https://github.com/matplotlib/matplotlib/issues/20661#issuecomment-889189712

总结:

$ cat <<EOF > setup.cfg
[libs]
system_freetype = True
EOF
$ export MPLSETUPCFG=$PWD/setup.cfg
$ python -m pip install matplotlib

【讨论】:

以上是关于Pip install matplotlib 在 M1 Mac 上失败的主要内容,如果未能解决你的问题,请参考以下文章

installing the matplotlib via pip in the enviroment dos

安装matplotlib

pip 安装 Python的matplotlib

pip install url安装报错,求解决办法

python 的pip install 安装包报错。

pip常用命令