代码之家  ›  专栏  ›  技术社区  ›  ecjb

python-在Mac上安装opencv时遇到问题(几个月前opencv运行良好之后)

  •  1
  • ecjb  · 技术社区  · 6 年前

    我有 opencv 安装在我的Mac上,几个月前它还可以工作,但现在不工作了。

    我有以下特点。 -打开cv:3.4.3.1 -操作系统/平台:MacOS 10.14 - Python 3.6

    我试图重新加载 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,并逐步解释 this site 我第一次成功地安装了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到系统python

    我输入然后用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.
    

    N°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
    

    然后安装完成。但是我仍然收到相同的错误消息

    我该怎么办?

    1 回复  |  直到 6 年前
        1
  •  0
  •   ecjb    6 年前

    事实上 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 page of jupyter 也帮了不少忙!