机器都在不停学习
人怎么能停止脚步

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

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

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

这是什么原因呢?

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

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


1
pip install langid

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

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


1
2
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


1
pip uninstall enum34

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


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

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


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

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


1
2
3
4
5
6
7
8
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
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'langid'

可以看到,langid已经可以被python使用啦!

赞(0)
转载请注明出处机器在学习 » 使用pip安装了一个包,但在Python中import找不到包
分享到: 更多 (0)

评论 抢沙发

Scroll Up