【问题标题】:OpenCV Failed to Import outside the root directory using anacondaOpenCV 无法使用 anaconda 在根目录之外导入
【发布时间】:2021-12-17 19:43:45
【问题描述】:

重现错误的步骤:

我刚刚在我的新 Conda 环境(Python 3.7.11)上安装了 OpenCV,使用:

conda install opencv

一切顺利。 Conda 正在下载和提取其他一些包,包括 numpy-1.21.2。 安装的 opencv 版本是 3.4.2

我试图从我的终端,从根目录运行这段代码。

python
>> import cv2
>> cv2.__version__

仍然运行顺利。 Python 打印 cv2 版本。但是当我从另一个目录(例如:~/Downloads)运行相同的代码时会出现错误。错误是:

Python 3.7.11 (default, Jul 27 2021, 07:03:16)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: numpy.core.multiarray failed to import

更多奇怪的错误

当我直接从 vscode 运行相同的代码,在 vscode 中选择相同的 conda 环境时,同样的问题出现在 vscode 终端。更重要的是,当我尝试从 vscode 终端输入 python 时,它显示 python 2.7

 │  ~  source /opt/anaconda3/bin/activate                                                                       1 ✘ │ base  │ 08:09:48 PM  

  │  ~  conda activate testenvi                                                                                    ✔ │ base  │ 08:09:48 PM  

  │  ~  python -u "/Users/martinmanullang/Downloads/testsiopencv.py"                                           ✔ │ testenvi  │ 08:09:49 PM  
Traceback (most recent call last):
  File "/Users/martinmanullang/Downloads/testsiopencv.py", line 1, in <module>
    import cv2
ImportError: No module named cv2

  │  ~  python                                                                                               1 ✘ │ testenvi  │ 08:09:53 PM  

WARNING: Python 2.7 is not recommended. 
This version is included in macOS for compatibility with legacy software. 
Future versions of macOS will not include Python 2.7. 
Instead, it is recommended that you transition to using 'python3' from within Terminal.

Python 2.7.18 (default, Oct  2 2021, 04:20:39) 
[GCC Apple LLVM 13.0.0 (clang-1300.0.29.1) [+internal-os, ptrauth-isa=deploymen on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

我已经尝试过的一些步骤:

  • pip install opencv-contrib-python重新安装opencv
  • 重新安装 numpy(使用 pip,使用 conda)
  • 使用 python 3.5,3.6,3.9 创建新环境

没有任何作用。需要你们的帮助。

系统规范

  • 运行 macOS Monterey 的 MacbookPro 2020
  • VSCode 1.61.2
  • 带有 ZSH 的 iTerm 3.4.12

【问题讨论】:

  • 你能在根目录下查看你使用的是哪个python吗?以及是否可以在conda 环境中找到cv2 文件夹?看来您需要在conda 环境中重新安装numpy。你能直接在终端中运行python文件而不是Code Runer吗?
  • 根目录中的 Python:3.7.11(使用 iTerm)非根目录中的 Python:3.7.11(使用 iTerm)'python' 显示:/opt/anaconda3/envs/testenvi/bin/python /usr/bin/python 是的,我在里面有 cv2 文件夹:/opt/anaconda3/envs/testenvi/include/opencv2
  • 抱歉迟到了。从代码的第二部分来看,您似乎已经在 aconda 环境中安装了 opencv,但我无法知道它是哪个 aconda 环境。你能附上一些包含完整信息的图片吗?包括根目录和根目录外的终端,以及在VSCode中,除了你的名字请不要隐藏信息,那我不知道你使用的是哪个环境。

标签: python opencv visual-studio-code anaconda conda


【解决方案1】:

如果您已激活 conda 环境。它的名称将添加在命令行的开头。那么当你搜索python命令时,激活环境中的python可执行文件将是第一个。

您可以通过 pip show opencv-python 命令找到opencv 模块。

来自您问题中的第二个代码。看起来你的numpy 模块有问题,你可以尝试重新安装(pip install -U numpy)吗?你能用pip install -U opencv-python的命令升级你的opencv吗?因为我的cv2版本是4.5.4-dev,而且效果很好。

【讨论】:

  • 非常感谢您考虑我的问题。我已经使用 pip 将所有内容升级到最新版本,并再次尝试导入 cv2(从根目录和目录内部),但问题仍然出现。请检查此附件。 imgur.com/a/JJwaw0w
  • @amisotcm 抱歉迟到了。你能离开Download 文件夹吗?因为我怀疑您在 Download 文件夹中有一个 python 可执行文件。可以看看吗?
  • @amisotcm 嗨,你还在吗?
  • 我认为问题已经解决,让我更新截图(imgur.com/a/KtV51sD)谢谢@Steven-MSFT
  • @amisotcm 很高兴听到这个消息。
猜你喜欢
  • 2017-09-12
  • 2020-04-29
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 2021-11-21
  • 2019-07-19
  • 2020-01-10
相关资源
最近更新 更多