我已经成功使用 pip install <library-name>
命令安装了一个库。但是,在我尝试导入它时,Python 报错 ImportError: No module named <library-name>
。为什么会出现这个错误,我该如何使用已安装的库呢?
我已经成功使用 pip install <library-name>
命令安装了一个库。但是,在我尝试导入它时,Python 报错 ImportError: No module named <library-name>
。为什么会出现这个错误,我该如何使用已安装的库呢?
简言之:常常存在多个版本的python解释器和pip版本。使用python -m pip install <library-name>
来安装库,而不是pip install <library-name>
将确保库被安装到默认的python解释器中。
还请注意:从我的个人经验来看,我建议不要使用sudo pip install
命令将包安装到系统默认的python解释器中。这可能会导致各种问题的混乱。
当你想要使用sudo
调用pip
时,请首先检查virtualenv是否是更好的选择。
大多数现代系统都有多个python解释器。每个解释器都维护其自己的已安装软件包集合。在安装新软件包时,重要的是要了解这些软件包实际上被安装到哪个解释器中。
在Unix系统上,可以使用Shell来了解正在发生的情况。
键入which -a python
会显示您的PATH
中的所有解释器。第一行对应于从命令行运行python
时使用的解释器。
/private/tmp/py32/bin/python
/usr/local/bin/python
/usr/bin/python
每个pip版本属于唯一的解释器。which -a pip
会显示所有pip版本。再次强调,当您在shell中键入pip
时,将调用第一行。
/usr/local/bin/pip
/usr/bin/python
注意,此时python
属于安装在/private/tmp/py32/
中的解释器,但pip
会安装到/usr/local/bin
的解释器中。在成功安装库后,您将无法在默认的Python解释器中导入它。/usr/local/bin/python
,您将能够导入库。python -m pip install <library-name>
而不是pip install <library-name>
。这将调用与您默认的Python解释器相对应的pip版本。/usr/local/bin/python
时,通常意味着你已经安装了它。 - Padraic CunninghamPython
,还有多个Python
解释器。通常默认情况下会有一个Python2.x
和一个Python3.x
解释器。嗯,也许我需要重写一下以使我的观点更清晰。 - celwhich -a python
应返回一个路径,并且应明确指出您不应更改默认Python。如果您不知道自己在做什么,那么使用virtualenv或pyenv是正确的方法。 - Padraic Cunninghamsudo pip install
是有害的,以及如何设置virtualenv
以避免弄乱系统的Python吗? - cel还有几点需要注意:
python <library>
在谷歌上搜索通常可以找到信息),看看自己是否正确导入了包。