在MacOS M1 上无法使用pip安装Mediapipe。

5

在此输入图片描述

大家好

我正在使用搭载M1芯片的Mac Air

我的环境设置如下

(CV)  san  ~/work/python
 conda list
# packages in environment at /Users/san/miniforge3/envs/CV:
#
# Name                    Version                   Build  Channel
appnope                   0.1.2                    pypi_0    pypi
argon2-cffi               20.1.0                   pypi_0    pypi
async-generator           1.10                     pypi_0    pypi
attrs                     21.2.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
bleach                    3.3.1                    pypi_0    pypi
ca-certificates           2021.5.30            h4653dfc_0    conda-forge
certifi                   2021.5.30        py38h10201cd_0    conda-forge
cffi                      1.14.6           py38h0957451_0    conda-forge
charset-normalizer        2.0.3                    pypi_0    pypi
cycler                    0.10.0                   pypi_0    pypi
debugpy                   1.4.0                    pypi_0    pypi
decorator                 5.0.9                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.3                      pypi_0    pypi
freetype                  2.10.4               h17b34a0_1    conda-forge
future                    0.18.2           py38h10201cd_3    conda-forge
idna                      3.2                      pypi_0    pypi
ipykernel                 6.0.3                    pypi_0    pypi
ipython                   7.25.0                   pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
ipywidgets                7.6.3                    pypi_0    pypi
jbig                      2.1               h3422bc3_2003    conda-forge
jedi                      0.18.0                   pypi_0    pypi
jinja2                    3.0.1                    pypi_0    pypi
joblib                    1.0.1              pyhd8ed1ab_0    conda-forge
jpeg                      9d                   h27ca646_0    conda-forge
jsonschema                3.2.0                    pypi_0    pypi
jupyter                   1.0.0                    pypi_0    pypi
jupyter-client            6.1.12                   pypi_0    pypi
jupyter-console           6.4.0                    pypi_0    pypi
jupyter-core              4.7.1                    pypi_0    pypi
jupyterlab-pygments       0.1.2                    pypi_0    pypi
jupyterlab-widgets        1.0.0                    pypi_0    pypi
kiwisolver                1.3.1                    pypi_0    pypi
lcms2                     2.12                 had6a04f_0    conda-forge
lerc                      2.2.1                h9f76cd9_0    conda-forge
libblas                   3.9.0                9_openblas    conda-forge
libcblas                  3.9.0                9_openblas    conda-forge
libcxx                    12.0.1               h168391b_0    conda-forge
libdeflate                1.7                  h27ca646_5    conda-forge
libffi                    3.3                  h9f76cd9_2    conda-forge
libgfortran               5.0.0.dev0      11_0_1_hf114ba7_22    conda-forge
libgfortran5              11.0.1.dev0         hf114ba7_22    conda-forge
liblapack                 3.9.0                9_openblas    conda-forge
libopenblas               0.3.15          openmp_hf330de4_1    conda-forge
libpng                    1.6.37               hf7e6567_2    conda-forge
libprotobuf               3.16.0               hccf11d3_0    conda-forge
libtiff                   4.3.0                hc6122e1_1    conda-forge
libwebp-base              1.2.0                h27ca646_2    conda-forge
llvm-openmp               12.0.1               hf3c4609_0    conda-forge
lz4-c                     1.9.3                h9f76cd9_0    conda-forge
markupsafe                2.0.1                    pypi_0    pypi
matplotlib                3.4.2                    pypi_0    pypi
matplotlib-inline         0.1.2                    pypi_0    pypi
mistune                   0.8.4                    pypi_0    pypi
nbclient                  0.5.3                    pypi_0    pypi
nbconvert                 6.1.0                    pypi_0    pypi
nbformat                  5.1.3                    pypi_0    pypi
ncurses                   6.2                  h9aa5885_4    conda-forge
nest-asyncio              1.5.1                    pypi_0    pypi
ninja                     1.10.2               h4d860bb_0    conda-forge
notebook                  6.4.0                    pypi_0    pypi
numpy                     1.18.5                   pypi_0    pypi
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h062765e_1    conda-forge
openssl                   1.1.1k               h27ca646_0    conda-forge
packaging                 21.0                     pypi_0    pypi
pandocfilters             1.4.3                    pypi_0    pypi
parso                     0.8.2                    pypi_0    pypi
pexpect                   4.8.0                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    8.3.1            py38h02acf36_0    conda-forge
pip                       21.1.3             pyhd8ed1ab_0    conda-forge
prometheus-client         0.11.0                   pypi_0    pypi
prompt-toolkit            3.0.19                   pypi_0    pypi
ptyprocess                0.7.0                    pypi_0    pypi
pycparser                 2.20               pyh9f0ad1d_2    conda-forge
pygments                  2.9.0                    pypi_0    pypi
pyparsing                 2.4.7                    pypi_0    pypi
pyrsistent                0.18.0                   pypi_0    pypi
python                    3.8.6           h12cc5a1_5_cpython    conda-forge
python-dateutil           2.8.2                    pypi_0    pypi
python_abi                3.8                      2_cp38    conda-forge
pytorch                   1.8.0           cpu_py38h15dfef8_2    conda-forge
pyzmq                     22.1.0                   pypi_0    pypi
qtconsole                 5.1.1                    pypi_0    pypi
qtpy                      1.9.0                    pypi_0    pypi
readline                  8.1                  hedafd6a_0    conda-forge
requests                  2.26.0                   pypi_0    pypi
scikit-learn              0.24.2           py38h26428f7_1    conda-forge
scipy                     1.7.0            py38hd0c9ec0_0    conda-forge
send2trash                1.7.1                    pypi_0    pypi
setuptools                49.6.0           py38h10201cd_3    conda-forge
six                       1.16.0                   pypi_0    pypi
sleef                     3.5.1                h27ca646_1    conda-forge
sqlite                    3.36.0               h72a2b83_0    conda-forge
terminado                 0.10.1                   pypi_0    pypi
testpath                  0.5.0                    pypi_0    pypi
threadpoolctl             2.2.0              pyh8a188c0_0    conda-forge
tk                        8.6.10               hf7e6567_1    conda-forge
torchtext                 0.10.0                   pypi_0    pypi
torchvision               0.9.0           py38h4ddca67_0_cpu    conda-forge
tornado                   6.1                      pypi_0    pypi
tqdm                      4.61.2                   pypi_0    pypi
traitlets                 5.0.5                    pypi_0    pypi
typing_extensions         3.10.0.0           pyha770c72_0    conda-forge
urllib3                   1.26.6                   pypi_0    pypi
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
widgetsnbextension        3.5.1                    pypi_0    pypi
xz                        5.2.5                h642e427_1    conda-forge
zlib                      1.2.11            h31e879b_1009    conda-forge
zstd                      1.5.0                h861e0a7_0    conda-forge

Python版本为

(CV)  san  ~/work/python
 python --version
Python 3.8.6

那么我所看到的是

(CV)  san  ~/work/python
 pip install mediapipe
ERROR: Could not find a version that satisfies the requirement mediapipe (from versions: none)
ERROR: No matching distribution found for mediapipe

所以,我已经试图解决这个问题好几个星期了,但许多人给出的建议(像我一样受到这个问题困扰的人)如下:

1. 降级Python版本

2. 从4.x降级bazel到3.7.2

但是Python版本并不重要,并且我不确定在bazel上的mediapipe是用于C++或其他什么语言的。无论如何,没有办法回退。 (您可以在此处查看)

有什么解决方案吗?


https://google.github.io/mediapipe/getting_started/python.html#building-mediapipe-python-package - phd
7个回答

9
以下答案由GitHub用户josiahsrc提供。
以下是使用苹果M1处理器的mediapipe步骤:
  1. 使用 Rosetta 2 翻译层启动终端。您可以通过打开 Finder,转到 应用程序 > 实用工具 并右键单击 终端 来实现此操作。在右键单击菜单中,单击 获取信息,然后选中 使用 Rosetta 打开 复选框。
  2. 打开一个新的终端窗口。(如果之前已经打开了终端,请退出并重新启动它)。
  3. 使用以下命令为 x86_64 架构安装 Homebrew。 arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"。我们这样做是因为我们想要安装支持 mediapipe 的 x86_64 Python 3.8。
  4. 现在,我们已经拥有了 x86_64 的 brew,我们可以通过运行命令 arch -x86_64 /usr/local/homebrew/bin/brew install python@3.8 安装 x86_64 的 Python 3.8。此安装可能需要一些时间。
  5. 现在我们拥有了所需的 Python 版本,我们可以创建一个新的虚拟环境。通过使用命令 arch -x86_64 /usr/local/homebrew/opt/python@3.8/bin/python3 -m venv myvenv。请记住,您需要指定到 x86_64 Python 的路径(我们刚刚安装的那个)。对我来说,它安装在 /usr/local/homebrew/opt/python@3.8/bin/python3。对于您来说,可能会有所不同。无论哪种方式,在 Brew 完成安装 Python 后,它将显示安装的路径。您应该看到 "Python was installed at /Path/to/newly/installed/python"。此外,虚拟环境将创建在 ~/myvenv。您可以通过更改命令中的 myvenv 部分来更改它。
  6. 启动您的虚拟环境 source ~/myvenv/bin/activate。我使用了这条路径 ~/myvenv,因为那是我创建虚拟环境的地方。如果您在其他地方创建了虚拟环境,请使用该路径。
  7. 现在您应该在虚拟环境中,升级 pip。pip install --upgrade pip
  8. 从 pip 安装 mediapipepip install mediapipe

就是这样 :) 现在你可以在 PyCharm 中打开你的 venv 作为一个项目。例如,将解释器指定为我们刚刚安装的 x86_64 Python 的路径(示例 /usr/local/homebrew/opt/python@3.8/bin/python3)。现在你应该能够使用 mediapipe 了。


1
但这是通过模拟器运行的x86_64安装版mediapipe,而不是本地ARM mediapipe?运行模拟版本的性能惩罚有多大? - Rup
1
不通过模拟器,安装是由翻译层在单独的环境(虚拟环境)中进行翻译的。模拟器会暗示您只能使用在模拟器上安装的内容。但这里并非如此。在上述安装完成后,您可以像往常一样在PyCharm上打开项目。您只需要使用x86_64版本的Python(您的计算机也可以在终端中运行)。 - Nizar
你能在Miniforge中使用这个吗? - aheigins
1
是的,我不明白为什么你不能做到。 - Nizar
@Nizar,你怎么适应在Miniforge中运行呢?我只能在Miniforge环境下使用TensorFlow,并希望在同一环境中获取mediapipe。谢谢。 - connor449

8
pip install mediapipe-silicon

请点击此处获取更多信息。

同时查看https://github.com/cansik/mediapipe-silicon中的自述文件。

您可能需要将protobuf降级至3.20.1或更低版本。

运行中。

pip uninstall protobuf
pip install protobuf==3.20.1

......对我有用。


3

我之前也遇到了同样的问题,但是这个方法对我有用,而且这是在Mac m1上下载mediapipe最好、最安全的方式。

pip install mediapipe-silicon

1

我在Mac M1上安装Mediapipe时遇到了问题,以下方法适用于我:

pip install mediapipe-silicon

1

如果您不介意每次都设置架构,这也可以工作。

$ arch -x86_64 pip install mediapipe
$ arch -x86_64 python
>>> import mediapipe as mp

编辑: 在回答时,PyPi仅为Python3.8的MacOS提供软件包,因此请确保您拥有相同的虚拟环境。


0
最好的方法是从源代码构建mediapipe:
1. 安装依赖项:
brew install bazelisk
brew install opencv@3
# There is a known issue caused by the glog dependency. Uninstall glog.
brew uninstall --ignore-dependencies glog
pip3 install --user six

2- 检出 MediaPipe 存储库:

git clone https://github.com/google/mediapipe.git
cd mediapipe

3- 构建:

python3.9 setup.py install

-1
我正在使用Macbook Air M1 2020,这对我非常有效。 $ arch -x86_64 pip install mediapipe

你确定吗? M1不是在x86_64架构上运行,而是在arm64上运行,所以这不应该起作用。 - Jakob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接