gpt4 book ai didi

python-3.x - 除了在 python3 的站点包目录中之外,无法导入 opencv

转载 作者:行者123 更新时间:2023-12-02 16:07:26 26 4
gpt4 key购买 nike

我正在关注 lynda openCV python 类(class)及其 opencv 安装指南,但在导入 cv2 时遇到了困难。

我用了pip3 install opencv-python安装cv2。
我可以仅限 当我的当前目录是 /usr/local/lib/python3.6/site-packages 时导入 cv2 .其他任何地方都会给我

  Traceback (most recent call last): 
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'

以下是我的系统版本:
Python 3.6.0
macOS High Sierra 10.13.2
Opencv version '3.4.0'

这是 __init__.py发现于 /usr/local/lib/python3.6/site-packages/cv2 ,但不知道这有什么关系
import importlib
import os

from .cv2 import *
from .data import *

# wildcard import above does not import "private" variables like __version__
# this makes them available
globals().update(importlib.import_module('cv2.cv2').__dict__)

更新

我添加了这段代码,它似乎可以从任何目录工作,仍然有问题是为什么我必须这样做?我可以从任何地方导入 numpy .. 很奇怪
import sys
sys.path.append('/usr/local/lib/python3.6/site-packages')

最佳答案

这是因为你的 cv2.so 编译的库文件。如果您查看/usr/local/lib/python3.6/site-packages/cv2/python-3.6 文件夹(或对于某些用户,它位于/usr/local/python/cv2/python-3.6 中),您应该像这样查看文件 cv2.cpython-36m-darwin.so:

(cv) fangran@Fangs-MacBook-Pro ~ % ls /usr/local/lib/python3.6/site-packages/cv2/python-3.6
cv2.cpython-36m-darwin.so

现在,您要做的是 cd 进入该目录并将其重命名为 cv2.so (这样更容易)
(cv) fangran@Fangs-MacBook-Pro ~ % cd /usr/local/lib/python3.6/site-packages/cv2/python-3.6

(cv) fangran@Fangs-MacBook-Pro python-3.6 % sudo mv cv2.cpython-36m-darwin.so cv2.so

如果您在虚拟环境中(推荐),请确保进入该环境的站点包并执行符号链接(symbolic link):
(cv) fangran@Fangs-MacBook-Pro site-packages % cd ~/.virtualenvs/cv/lib/python3.6/site-packages/
(cv) fangran@Fangs-MacBook-Pro site-packages % ln -s /usr/local/python/cv2/python-3.6/cv2.so cv2.so

或者,如果没有,请确保您所在的任何环境都可以访问 cv2.so 文件。

关于python-3.x - 除了在 python3 的站点包目录中之外,无法导入 opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714069/

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