安装 python 模块 ImportError (dlib, imutils) raspberry pi

Posted

技术标签:

【中文标题】安装 python 模块 ImportError (dlib, imutils) raspberry pi【英文标题】:installing python modules ImportError (dlib, imutils) raspberry pi 【发布时间】:2018-09-25 10:18:10 【问题描述】:

我正在尝试在我的树莓派上安装 dlib,用于使用 opencv 的计算机视觉项目。我安装成功opencv,可以在python中导入cv2模块。

    $ python
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>>

然后我用 pip install 安装了 2 个模块:dlib 和 imutils。我可以在 pip freeze 中看到它们:

$ pip freeze | grep dlib
dlib==19.10.0
$ pip freeze | grep imutils
imutils==0.4.6

但问题是在 python 中我无法导入它们,python 找不到它们并且我无法使用它们。

>>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named dlib
>>> import imutils
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named imutils

我该如何解决这个问题?

编辑: @hoefling

$ python -c "import os, sys; print(os.linesep.join(sys.path))"

/usr/lib/python2.7
/usr/lib/python2.7/plat-arm-linux-gnueabihf
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages/gtk-2.0

$ pip -V
pip 10.0.0 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

【问题讨论】:

运行python -c "import os, sys; print(os.linesep.join(sys.path))"。它将打印路径列表。然后运行pip -V 并检查打印的路径是否在上面的列表中。如果不是,则您安装了多个 python 版本并且使用 pip 获取错误的 python 版本。 @hoefling 这种情况我该怎么办? 【参考方案1】:

我用

安装了 imutils
sudo pip install imutils --target /usr/local/lib/python3.5/dist-packages/

进入 python 3.5 文件夹,一切正常

【讨论】:

【参考方案2】:

您的系统将pip 符号链接到pip3,因此当您使用pip 时,它会安装python3 的软件包。使用pip2pip 定位为python2

$ pip2 install dlib imutils

可能是您没有为python2 安装pip。在这种情况下,您必须单独安装它。从sys.path 中的dist-packages 判断,你有一个debian 或一些衍生产品,所以很可能你必须apt install python2-pip 才能将pip2 添加到系统中。

【讨论】:

我按照你说的做了,但还是不行。我对 >>> import dlib 有相同的输出。 => ImportError: 没有名为 dlib 的模块 @DanielC pip2 -V 返回什么? $ pip2 -V --> pip 10.0.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7) 好的,现在检查 dlib 安装到的位置:pip show dlib | grep Location。它应该是 sys.path 中的位置之一,以便导入正常工作。 $ pip show dlib | grep Location --> Location: /usr/local/lib/python3.5/dist-packages【参考方案3】:

就像 hoefling 在 cmets 中所说的那样,您可能安装了多个 python 版本,因为 Rpi 带有 2 和 3。如果您使用的是 Python 3,请使用 pip3 而不是 pip。

【讨论】:

以上是关于安装 python 模块 ImportError (dlib, imutils) raspberry pi的主要内容,如果未能解决你的问题,请参考以下文章

Python 3:ImportError“没有名为 Setuptools 的模块”

您将如何安装 python 模块/包,以便我的脚本可以使用 pypy3 而不是 Python3 运行? ImportError:没有命名的模块

Python Error: “ImportError: No module named six”,用自动安装解决依赖问题

ImportError:没有名为 xgboost 的模块

Windows 上的“ImportError:没有名为站点的模块”

如何安装 MySQLdb 包? (ImportError:没有名为 setuptools 的模块)