为什么即使在 python conda 环境中 pip 安装后'ultralytics'也找不到该模块?



在Python 3.8.15的conda环境中,我做到了pip install ultralytics

成功安装…,ultralytics-8.0.4

但是当运行from ultralytics import YOLO时,它显示

ModuleNotFoundError: No module named 'ultralytics'

你在用Jupyter笔记本吗?如果是这样,jupyter可能没有使用正确的python解释器。或者您正在使用安装在系统上的jupyter,而不是安装在conda环境中的jupyter。

查看哪个python jupyter在单元格上使用此代码:

import sys
print(sys.executable)

列出所有已安装的可用python解释器。使用这个命令:

!which -a python

conda环境中的python应该位于如下路径:

~/.conda/envs/{myenv}/bin/python

要在conda环境中使用正确的解释器,您需要在conda环境中使用单独的jupyter安装。看看这个答案:如何在conda环境中使用Jupyter笔记本?

我使用Colab运行。首先,我使用pip命令安装Ultralytics

!pip install ultralytics

然后

from ultralytics import YOLO

并且成功了

您可以在笔记本内部的单元中使用magic%pip install来确保在Jupyter笔记本内核所使用的环境中进行安装。米哈埃尔的回答指出了真正确定如何处理和完全控制事情的彻底方法。然而,在试图越过障碍时,有方便、快速的替代方法是很好的。

对于那些使用实际木星的地方(而不是Google Colab)),则安装命令为:

%pip install ultralytics

请确保让安装过程完全取决于您的系统和网络,这可能需要一些时间。接下来,在运行任何神奇的安装命令之后,您将看到一条重新启动内核的消息,最好在尝试import语句之前重新启动内核。最后,在重新启动内核之后,您可以运行from ultralytics import YOLO之后的建议导入,希望现在不会遇到ModuleNotFoundError: No module named 'ultralytics'

添加这个神奇的命令是为了确保安装在支持笔记本的内核所在的环境中进行。有关Jupyter中现代魔法安装命令的更多信息,请参阅此处。(对于那些使用conda/Anaconda/mamba作为主包管理器的包,当包具有conda安装食谱时,有一个相关的%conda install变体,也确保安装到内核正在使用的正确环境中。)

查看JATIN的答案如果你正在使用Google Colab此时。因为我不相信谷歌Colab有神奇的pip install,因为他们遗憾地没有跟上目前木星的能力。

感叹号与pip install结合使用对于典型的Jupyter来说已经过时了,因为添加了神奇的命令。偶尔,在内核运行的环境中出现不确保安装的感叹号可能会导致问题/混乱,因此几年前添加了这个神奇的命令,以使安装更方便。有关感叹号变体用于此特定任务的缺点的更多信息,请参阅此处的第一句话。

事实上,当在一个普通的Jupyter笔记本上运行这样的命令时,这些天没有任何符号比在pip installconda install前面加一个感叹号更好。现在没有比感叹号更好的符号了,因为在大多数Jupyter安装中默认启用了自动功能。因此,如果没有符号,魔术命令变体将在幕后使用。通常情况下,最好是显式地使用魔法符号,但您可能会看到符号不起作用或被建议并想知道发生了什么。

我有同样的问题与Yolov5,我重新安装了这个再次工作。

pip install -r requirements.txt