Python - проблема с установкой opencv на Mac (после того, как opencv работал нормально несколько месяцев назад)

На моем Mac установлен opencv, который несколько месяцев назад работал, но больше не работает.

У меня следующие особенности. - OpenCV: 3.4.3.1 - Операционная система / платформа: macOS 10.14. - Python 3.6.5

Я попытался перезагрузить python script, на котором использовал opencv. Однако я получил следующее сообщение об ошибке:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/anaconda3/lib/python3.6/site-packages/cv2.so, 2): Library not loaded: /usr/local/opt/ilmbase/lib/libImath-2_2.12.dylib
  Referenced from: /usr/local/Cellar/opencv/3.4.1_4/lib/libopencv_imgcodecs.3.4.dylib
  Reason: image not found

Затем я попытался переустановить opencv с пошаговым объяснением этот сайт, с которым я успешно установил opencv в первый раз.

  1. определить, какая версия opencv у меня на машине

После записи cd /usr/local/Cellar/opencv и ls я получаю: 3.4.1_4 3.4.3 3.4.3_1. Итак, я пришел к выводу, что последняя версия на моей машине - это 3.4.3_1, которая находится в /usr/local/Cellar/opencv/3.4.3_1/cv2.cpython-37m-darwin.so.

  1. Определить путь к пакету в python

Затем, если я сделаю следующие $ cd /usr/local/Cellar/opencv/3.4.3_1 и $ cd lib, я получу (среди прочего): python3.7. Затем делаю следующее: $ cd python3.7, а затем $ cd site-packages и $ pwd, я получаю: /usr/local/Cellar/opencv/3.4.3_1/lib/python3.7/site-packages

  1. добавьте cv2..so в System python

Затем я ввожу питон с $ python3 и получаю

Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 03:03:55) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Вопрос № 1 Разве не странно, что в нем говорится, что версия 3.6.5 и opencv, похоже, имеют lib 3.7 (а не 3.6)

введите >>> import sys, а затем >>> print(sys.path) и получите следующий список:

['', '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']

Затем я ввожу:

$ ln -s /usr/local/Cellar/opencv/3.4.3_1/lib/python3.7/site-packages/cv2.cpython-37m-darwin.so /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/cv2.so

  1. Добавить OpenCV в Virtualenvs

Затем я добавляю следующую команду:

$ mkdir ~/Dev
$ cd ~/Dev
$ virtualenv -p python3 newcvtest
$ cd newcvtest
$ source bin/activate
(newcvtest) $ python --version 
Python 3.6.5
$ pip install numpy
$ cd lib/python3.6/site-packages
$ ln -s /usr/local/Cellar/opencv/3.4.3_1/lib/python3.7/site-packages/cv2.cpython-37m-darwin.so

После этого установка должна быть завершена. Однако я все еще получаю то же сообщение об ошибке

Что я должен делать?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
206
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Собственно opencv установился успешно.

Мне действительно пришлось изменить Path в файле .json ядра jupyter. Сначала я проверил список ядра jupyter:

$ jupyter kernelspec list
julia-0.6    /Users/mymac/Library/Jupyter/kernels/julia-0.6
julia-1.0    /Users/mymac/Library/Jupyter/kernels/julia-1.0
python3      /Users/mymac/Library/Jupyter/kernels/python3

Затем я cd по указанному выше пути python, и я нашел файл kernel.json внутри и открыл его:

{
 "argv": [
  "/path/to/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python 3",
 "language": "python"
}

Затем в этом файле я изменил строку /path/to/python на путь Python, который я получил, набрав следующее в Терминале:

$ which python
/Users/mymac/anaconda3/bin/python

Перезапустил Atom, и он наконец заработал!

Намёки github страница jupyter тоже очень помогли!

Другие вопросы по теме