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使用啦!
发表回复