gpt4 book ai didi

python - CMake 后在 PyCharm 中找不到模块 cv2 (OpenCV)

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:38 27 4
gpt4 key购买 nike

我刚刚在 OSX 上遇到了一个奇怪的问题,试图在我的 PyCharm IDE 中使用 cv2。首先,我使用 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 截图:

enter image description here

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']

最佳答案

最后,我刚刚设法让 cv2 开始工作!

问题是,我不想在我的 Python3 中使用虚拟环境。

解决方案:

  1. 使用略有不同的命令 + 按照原始指南 (-D PYTHON3_EXECUTABLE=/bin/python ) 中的步骤重建 opencv 库。

  2. 发现,python3(通过 OSX 终端启动)在尝试导入模块后将找不到 cv2,除非我切换 /usr/local/lib/python3.7/site-packages/ 在启动之前。

  3. 由于 cv2.so 文件位于此目录中,它未与 sys.path 一起列出(由于奇怪的情况),我不得不手动将其附加到路径列表中。

有两个选项对我有用:a) 本地

import sys
sys.path.insert(0, "/usr/local/lib/python3.7/site-packages/")

就在我尝试在 PyCharm 中导入 cv2 之前

b) 全局

nano ~/.bash_profile

添加以下行:

export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python3.7/site-packages/"

并重新加载 .bash_profile:

. ~/.bash_profile

感谢@flyingteller@eypros感谢您的帮助。

注意:PyCharm 在编译/启动程序之前不知道 cv2 存在。因此语法高亮不会识别 cv2。不要介意这条线。不过它对我有用。

关于python - CMake 后在 PyCharm 中找不到模块 cv2 (OpenCV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51299207/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com