混乱的pip环境,无法python导入模块

时间:2019-05-28 15:39:18

标签: python python-3.x python-2.7 ubuntu pip

我与python相关的版本和路径如下

pip -V

输出

pip 19.1.1 from /home/USER_NAME/.local/lib/python3.6/site-packages/pip (python 3.6)
which pip

输出

/home/USER_NAME/.local/bin/pip
python -V

输出

Python 3.6.7
which python

输出

/home/USER_NAME/bin/python

问题是我使用了几种方法来更新点值,并且一切都搞砸了。所以现在我可以使用python模块,即使它们是使用pip安装的。例子

pip install requests 

Requirement already satisfied: requests in /usr/lib/python3/dist-packages (2.18.4)

但是当我以python代码导入请求时,我得到了

Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'requests

原因是pip链接到.local目录如何解决此问题,我尝试卸载pip并重新安装但没有帮助。感谢帮助

1 个答案:

答案 0 :(得分:1)

即使python显示 /home/USER_NAME/bin/python,因为它与/usr/bin/中的全局作用域python符号链接 但是pip安装在用户的本地范围内(/home/$USER/.local/bin/)。因此,当您运行

pip install requests会检查/home/$USER/.local,以便满足要求。

解决方案是,pip和python应该在同一范围内(在全局范围内或在用户范围内)

您可以卸载本地pip(pip uninstall pip)并使用全局pip和全局作用域python

OR

在删除/home/$USER/bin/python中的当前符号链接之后,您可以将ln -s /home/$USER/.local/bin/python3 /home/$user/bin/python符号链接到本地​​用户范围python($HOME/bin/python