我已经成功安装了一个库pip install <library-name>
。但是当我尝试导入它时,python凸起了ImportError: No module named <library-name>
。为什么会出现此错误,如何使用已安装的库?
TL; DR :通常存在多个版本的python解释器和pip版本。使用python -m pip install <library- name>
代替pip install <library-name>
将确保将库安装到默认的python解释器中。
另请注意: 根据我的个人经验,我建议不要使用sudo pip install
将包安装到系统的默认python解释器中。这可能会导致各种混乱的问题。每当您想致电pip
时sudo
,请先检查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时将被调用的内容。
/usr/local/bin/pip
/usr/bin/python
请注意,在这种情况下,它python
属于安装在中的解释器/private/tmp/py32/
,但pip
安装在解释器中/usr/local/bin
。成功安装库后,您将无法在默认的python解释器中将其导入。
那么如何导入已安装的库?
您的第一个选择是使用完整路径启动所需的解释器。因此,如果键入/usr/local/bin/python
,则可以导入库。
第二个(通常是首选)选项是专门调用正确版本的pip。为此,您可以使用python -m pip install <library-name>
代替pip install <library-name>
。这将调用属于您的默认python解释器的pip版本。