安装 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】:
我用
安装了 imutilssudo pip install imutils --target /usr/local/lib/python3.5/dist-packages/
进入 python 3.5 文件夹,一切正常
【讨论】:
【参考方案2】:您的系统将pip
符号链接到pip3
,因此当您使用pip
时,它会安装python3
的软件包。使用pip2
将pip
定位为python2
:
$ pip2 install dlib imutils
可能是您没有为python2
安装pip
。在这种情况下,您必须单独安装它。从sys.path
中的dist-packages
判断,你有一个debian 或一些衍生产品,所以很可能你必须apt install python2-pip
才能将pip2
添加到系统中。
【讨论】:
我按照你说的做了,但还是不行。我对 >>> import dlib 有相同的输出。 => ImportError: 没有名为 dlib 的模块 @DanielCpip2 -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”,用自动安装解决依赖问题