【发布时间】:2018-07-30 20:51:00
【问题描述】:
我正在运行已成功安装 OpenCV ver.3.4.1 的 Anaconda virenv。在 python 提示符下,我可以import cv2 并可以根据下面的命令行确认它的版本:
Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:07:29)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.4.1'
但是,在 VSCode 中,我运行以下简单程序并收到错误:
import numpy as numpy
import argparse
import cv2
pass
错误是:
Traceback (most recent call last):
File "detect_faces.py", line 3, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
我不明白为什么命令行导入有效,但是来自 VSCode 的程序无法导入相同的包。
关于这个主题有多个 SO Q&A,但它们都非常敏感的时间/日期和平台特定 - 大多数处理包本身在任何地方都无法识别的情况。最接近的问题是this one,它来自 2015 年,涉及 Android 平台。有什么想法吗?
更新
安装的版本应该是3.5.5,但是我注意到在从anaconda启动的命令提示符中显示为Python 3.5.5 :: Anaconda, Inc.,而VSCode中显示的版本是Python 3.6.5 :: Anaconda, Inc.。当我查看 VSCode 中可用的环境时,它显示了一些 2.7 和几个 3.6 版本——包括我正在使用的 3.6.5。
我刚刚安装了一个新的 Python 3.6 环境,并注意到命令提示符报告 Python 3.6.6 而来自 sys 检查的输出报告 Python 3.6.5 -- 同样,两者都有相同的可执行文件路径。
【问题讨论】:
-
VSCode 运行的是 Anaconda Python 3.6.6 吗?如果您不知道如何检查,请尝试将
import sys; print(sys.version, sys.executable)添加到脚本顶部,并在命令行中运行相同的操作,然后告诉我们他们各自说的内容。 -
如果这不是问题:您是否使用虚拟环境(
conda env或virtualenv或venv)?如果是这样,VSCode 是否可能使用与您在命令行上激活的环境不同的环境?如果您不知道如何检查,请尝试添加import sys; print(sys.path),并告诉我们他们每个人都说了些什么。 -
@abarnet - 你在正确的轨道上......安装的版本应该是 3.5.5,但我注意到在从 anaconda 启动的命令提示符中它显示为
Python 3.5.5 :: Anaconda, Inc.而版本VSCode 中显示的是Python 3.6.5 :: Anaconda, Inc.。当我查看 VSCode 中可用的环境时,它显示了一些 2.7 和几个 3.6 版本——包括我正在使用的 3.6.5。现在我知道了问题所在 - 不知道如何解决。 -
从命令提示符报告
Python 3.5.5,从sys print的VSCode 输出报告Python 3.6.5,从VSCode 报告Python 3.6.6。加号-所有三个都报告相同的可执行路径。 ? -
好的,您至少安装了四个 Python 副本。第一个问题是:您是否想要所有其他 Python?如果没有,最简单的做法是卸载除您想要的以外的所有内容。或者,如果您还没有真正开始,也许只需卸载 所有 它们,然后干净地重新安装您想要的。这肯定比将所有内容配置为使用相同的 Python 并确保您不会意外使用其他 Python 更简单。
标签: python opencv visual-studio-code