Python Tensorflow и OpenCV на Apple Silicon M1

#python #tensorflow #opencv #apple-m1

Вопрос:

Я пытаюсь использовать OpenCV и Tensorflow с Python на Apple silicon M1. Я могу использовать Tensorflow, но установить OpenCV в моей среде не удается

pip3 install opencv-python

Даже построить opencv-python самостоятельно локально не удается на numpy

 git clone https://github.com/skvark/opencv-python.git
cd opencv-python
ENABLE_CONTRIB=0 
ENABLE_HEADLESS=1
pip wheel . --verbose
 

с

Ошибка: команда ошибка с состоянием выхода 1: /пользователи/Ханнес/ГИТ/City-симулятор/tensorflow_venv2/Бен/питон3 /пользователи/Ханнес/ГИТ/City-симулятор/tensorflow_venv2/Либ/питон3.8/сайт-пакеты/Пип установить —игнорировать-установлен-без-пользователей —приставки /частный/ВАР/папки/НП/7ckckk8s5fd169kvnnfhjkk40000gr/Т/Пип-билд-Эд-3zg4n104/наложение … нет-предупреждаю-скрипт-расположение -в-не-бинарные :нет: — только-двоичный :нет: -я https://pypi.org/simple — setuptools колесо пакет scikit-сборки с CMake, Пип ‘и NumPy==1.13.3; python_version=='»‘»‘3.6′»‘»‘ и platform_machine != ‘»‘»‘aarch64′»‘»» ‘numpy==1.19.3; python_version>='»‘»‘3.6′»‘»‘ и sys_platform = = «»»»»linux» «»»»и platform_machine = = «»»»»aarch64» «»»» «numpy==1.14.5; python_version=='»‘»‘3.7′»‘»‘ и platform_machine != ‘»‘»‘aarch64′»‘»» ‘numpy==1.17.3; python_version=='»‘»‘3.8′»‘»‘ и platform_machine != ‘»‘»‘aarch64′»‘»» ‘numpy==1.19.3; python_version>>='»‘»‘3.9′»‘»‘ и platform_machine != ‘»‘»‘aarch64′»»»» Проверьте журналы для полного вывода команд.

Даже построить numpy самостоятельно не удается

 git clone git@github.com:numpy/numpy.git
cd numpy
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install cython --no-use-pep517
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install numpy --no-use-pep517
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install pandas --no-use-pep517
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install pybind11 --no-use-pep517
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install scipy --no-use-pep517
brew install libjpeg zlib
python3 -m pip install pillow
python3 -m pip install matplotlib
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install scikit-learn --no-use-pep517
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 python3 -m pip install statsmodels --no-use-pep517
cd ../opencv-python
pip wheel . --verbose
pip install numpy --no-index --find-links file:///Users/hannes/git/city-simulator/numpy/numpy
 

все без ошибок, плюшка на последнем, что я вижу это

 Looking in links: file:///Users/hannes/git/city-simulator/numpy/numpy
Requirement already satisfied: numpy in /Users/hannes/git/city-simulator/tensorflow_venv2/lib/python3.8/site-packages (1.18.5)
 

и pip wheel . --verbose все равно сталкивается с той же ошибкой 😞

Ответ №1:

Я заставил это работать с кондой !

 cd ~/Downloads
wget https://github.com/conda-forge/miniforge/releases/download/4.9.2-7/Mambaforge-4.9.2-7-MacOSX-arm64.sh 
chmod  x Mambaforge-4.9.2-7-MacOSX-arm64.sh
./Mambaforge-4.9.2-7-MacOSX-arm64.sh
which python
file $(which python)
wget https://raw.githubusercontent.com/mwidjaja1/DSOnMacARM/main/environment.yml
conda env create --file=/Users/hannes/Downloads/environment.yml --name=condaVenv
conda activate condaVenv
pip3 install --upgrade --force --no-dependencies 
  https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_$(uname -m).whl 
  https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_$(uname -m).whl
python -c 'import tensorflow as tf; print(tf.__version__)' 
conda install opencv
python -c 'import tensorflow as tf; import cv2; print(cv2.__version__); print(tf.__version__)'
 

показывает сейчас

 4.5.1
2.4.0-rc0
 

ВНИМАНИЕ во время копирования и вставки этой команды !

Когда вы его скопируете, вы увидите

введите описание изображения здесь

Пожалуйста, удалите после вставки

Комментарии:

1. Отличный ответ! Просто переработайте команды установки pip3, они показывают ошибку zsh: синтаксический анализ рядом с»)», но это легко исправить, посмотрев на github.com/apple/tensorflow_macos/releases/tag/v0.1alpha3 где вы можете получить название нужного вам колеса.

2. Это ошибка вставки из stackoverflow. Я обновил свое решение @Pr0ph3t_sec