【发布时间】:2018-12-20 07:19:24
【问题描述】:
我刚刚在 OSX 上遇到了一个奇怪的问题,试图将 cv2 与我的 PyCharm IDE 一起使用。 首先,我使用 brew 在本地安装了一个新的 Python3(确切地说是 3.7)副本,并选择这个实例作为我在 PyCharm 中的项目解释器。
通过终端验证正确的路径:
$ which python3
/usr/local/bin/python3
由于pip3 install opencv-python安装模块失败,我就自己编译了method from Adrian Rosebrock,在命令之后就编译成功了
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D PYTHON3_LIBRARY=/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin/libpython3.7.dylib \
-D PYTHON3_INCLUDE_DIR=/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m-darwin/ \
-D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D BUILD_EXAMPLES=ON ..
然后我继续将 cv2.cpython-35m-darwin.so 文件重命名为 cv2.so 重新启动后,我直接在终端中检查了 cv2 模块版本,看起来很有希望。
$ python3
Python 3.7.0a2 (v3.7.0a2:f7ac4fe52a, Oct 16 2017, 21:11:18)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.0.0-pre'
问题:在 PyCharm 中,即使选择了 python3 解释器,IDE 也无法识别 cv2 模块。
PyCharm 截图:
PyCharm 错误信息:
Traceback (most recent call last):
File "/Users/felix/PycharmProjects/MMW/Seminar5-2(@Python3)/test.py", line 1, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
Process finished with exit code 1
有谁知道,我错过了什么?
评论更新:
来自 PyCharm 控制台的 sys.path 输出:
['/Applications/PyCharm Edu.app/Contents/helpers/pydev', '/Applications/PyCharm Edu.app/Contents/helpers/pydev', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/felix/PycharmProjects/MMW']
从 OSX 终端对比:
$ python3 Python 3.7.0a2 (v3.7.0a2:f7ac4fe52a, Oct 16 2017, 21:11:18) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
【问题讨论】:
-
您指的是模块不在设置列表中。因为我猜那是因为您自行编译并且包管理器 pycharm 配置为使用无法识别它。您是否真的尝试在 pycharm 中运行导入 cv2 的脚本?
-
实际上的问题是,在一个简单的 python 脚本中,当我尝试运行程序时,PyCharm 会抛出错误: Traceback (most recent call last): File "/Users/felix/PycharmProjects/MMW /Seminar5-2(@Python3)/test.py", line 1, in
import cv2 ModuleNotFoundError: No module named 'cv2' -
它可能在pycharm python控制台中也不起作用?尝试比较
sys.path在pycharm和外部执行时的内容 -
另外,在您的问题中包含完整的错误消息
-
来自 PyCharm 控制台的 sys.path 输出:['/Applications/PyCharm Edu.app/Contents/helpers/pydev', '/Applications/PyCharm Edu.app/Contents/helpers/pydev', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python. framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/felix/PycharmProjects/毫米']
标签: python python-3.x opencv pycharm