На моем 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 в первый раз.
После записи 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
.
Затем, если я сделаю следующие $ 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
Затем я ввожу питон с $ 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
Затем я добавляю следующую команду:
$ 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
После этого установка должна быть завершена. Однако я все еще получаю то же сообщение об ошибке
Что я должен делать?
Собственно 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 тоже очень помогли!