我与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并重新安装但没有帮助。感谢帮助
答案 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
)