使用pip安装了一个包,但在Python中import找不到包

pip是一个很好用的工具,很容易就可以安装好需要的包。

但是在使用python的过程中,经常会碰到已经装了包,但是在python代码中import这个包时,仍然提醒没有这个模块。

这是什么原因呢?

其实很简单,因为我们的电脑上有多个版本的python,pip安装包的时候,有可能帮我们把包装到了其他地方去了。

这里以包langid为例,我们首先使用pip安装langid:

pip install langid

接着,我们在python中import langid时,提示:ModuleNotFoundError: No module named ‘langid‘。

我们确认一下,pip是否将langid安装成功

monk@monk-Ubuntu-Big:~/Desktop/someSpider$ pip install langidLooking in indexes: http://mirrors.aliyun.com/pypi/simple
Requirement already satisfied: langid in /usr/local/lib/python3.6/dist-packages (1.1.6)

pip提示langid已经安装成功。并且告诉我们,安装的路径是:/usr/local/lib/python3.6/dist-packages

我们试着将这个地址添加到PYTHONPATH中,不过在这之前,我们需要使用pip先卸载enum34

pip uninstall enum34

如果不执行这一步,修改了PYTHONPATH后,会提示以下错误:

AttributeError: module 'enum' has no attribute 'IntFlag'

接下来,我们修改PYTHONPATH吧!一行代码就可以了

export PYTHONPATH=/usr/local/lib/python3.6/dist-packages:$PYTHONPATH

命令中的路径就是上面langid的安装路径,执行完后,再测试以下langid是否可以被import了。

monk@monk-Ubuntu-Big:~/Desktop/someSpider$ python
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import langid

可以看到,没有提示langid包找不到,langid已经可以被python使用啦!

The End


已发布

分类

标签:

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注