pip:没有名为_internal的模块

时间:2018-04-20 11:39:09

标签: python pip

当我尝试以任何方式使用pip时,我遇到了问题。我正在使用Ubuntu 16.04.4

我应该说我已经使用过了,我从来没有遇到任何问题,但从今天开始,当我使用任何命令时,我总是会得到相同的错误(例如使用pip --upgrade)。

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

我尝试sudo apt-get remove python-pip后跟sudo apt-get install python-pip,但没有改变。

感谢您的时间!

26 个答案:

答案 0 :(得分:52)

askUbuntu的答案有效。

对于pip2.7,您可以先curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py,然后python2.7 get-pip.py --force-reinstall重新安装pip。

问题解决了。也适用于python3。

答案 1 :(得分:47)

这对我有用:

python -m pip install --upgrade pip

环境:OSX&amp;&amp; Python通过brew

安装

答案 2 :(得分:11)

此解决方案适用于xD

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py --force-reinstall

使用 sudo 获得更高的权限: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python get-pip.py --force-reinstall

当然,我们可以使用python3代替python;)

Ref

答案 3 :(得分:10)

为了完整起见,我刚遇到了“ Ubuntu Latest”的问题... v18.04 ...并通过以下方式解决了此问题:

python3 -m pip install --upgrade pip

(注意,必须指定python3,因为它引用了Python 3.6.9。同一系统上的python命令引用了Python 2.7.17。因为这显然是一个系统范围的安装遇到了[“ not sudo” ...]权限错误,但这没关系,因为无论如何都是错的。我遇到pip3的问题。)

答案 4 :(得分:9)

请参阅此issue list

sudo easy_install pip

为我工作

答案 5 :(得分:7)

此问题可能是由于普通用户没有访问包py文件的权限 1. root用户可以运行&lt; pip list&#39;
2.其他普通用户无法运行点击列表&#39;

x

检查pip py文件权限。

[~]$ pip list
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named pip._internal

解决方案:root用户登录并运行

[root@]# ll /usr/lib/python2.7/site-packages/pip/  
合計 24  
-rw-------  1 root root   24  6月  7 16:57 __init__.py  
-rw-------  1 root root  163  6月  7 16:57 __init__.pyc  
-rw-------  1 root root  629  6月  7 16:57 __main__.py  
-rw-------  1 root root  510  6月  7 16:57 __main__.pyc  
drwx------  8 root root 4096  6月  7 16:57 _internal  
drwx------ 18 root root 4096  6月  7 16:57 _vendor  

解决此问题。

答案 6 :(得分:7)

在文件“ / usr / local / bin / pip”中,将from pip._internal import main更改为from pip import main

答案 7 :(得分:4)

PYTHONPATH设置为包含内置site-packages目录时,我已经看到了这个问题。由于Python自动查看它是不必要的,可以删除。

答案 8 :(得分:3)

对我

python -m pip uninstall pip

解决了问题。 Reference

答案 9 :(得分:3)

它可能是由于版本冲突,尝试运行它,它会以某种方式删除旧点。

{{1}}

答案 10 :(得分:2)

您使用的是python2还是python3?以下命令可能不同!

  1. 使用python3 -m pip --version查看您是否安装了点子。
  2. 如果是,请运行python3 -m pip install --upgrade pip
  3. 如果不是,请运行sudo apt-get install python3-pip,然后重新执行。

答案 11 :(得分:1)

我只是遇到了同样的问题,以我为例,事实证明这是我的virtualenv中的python安装与站点范围的python(Ubuntu)之间的冲突。 为我解决的是以这种方式运行pip,以强制使用正确的python安装(在我的vortualenv中):

python3 -m pip install PACKAGE

代替

pip3 install PACKAGE

当我尝试遵循一些建议重新安装pip的答案时,我意识到了这一点,尽管激活了virtualenv,但我收到的错误输出指向的是现有站点范围的python库路径。 在删除并重新安装内容之前,值得尝试。

答案 12 :(得分:1)

仅适用于当前用户:

easy_install --user pip

python -m pip install --upgrade --user pip

第二个可能会给/usr/bin/python: No module named pip 即使which pip找到名为pip的模块。 在这种情况下,请尝试easy_install

答案 13 :(得分:1)

以下解决方案解决了我的机器上python2.7的问题 &#34; $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py&#34; 然后 &#34; $ sudo python2.7 get-pip.py --force-reinstall&#34;

答案 14 :(得分:0)

在将python安装从3.6升级到3.7后,我的虚拟环境中存在相同的问题,但仅在vent全局pip上可以正常工作,要解决此问题,我可以在重新创建后停用并删除虚拟环境,现在在venv上可以了:

deactivate
rm -rvf venv 

,然后重新创建虚拟环境。 我使用的是Mac OS 10.11和python 3

答案 15 :(得分:0)

(在Windows上) 不知道为什么会这样,但是我的PYTHONPATH设置指向安装了python的c:\ python27。结合virtualenv会产生上述错误。

通过一起删除PYTHONPATH env var来解决

答案 16 :(得分:0)

我的解决方案: 像大多数其他答案一样,第一步:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2.7 get-pip.py --force-reinstall

第二次,添加软链接

sudo ln -s /usr/local/bin/pip /usr/bin/pip

答案 17 :(得分:0)

我通过运行以下命令解决了该错误:

sudo apt remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

它将删除以前安装的pip并重新安装。 谢谢:)

答案 18 :(得分:0)

您可以先将其删除,然后再次安装,即可。 对于centos:

yum remove python-pip
yum install python-pip

答案 19 :(得分:0)

当我尝试通过pip3安装软件包时,在Windows上遇到了相同的错误:

Traceback (most recent call last):
  File "d:\anaconda\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\anaconda\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Anaconda\Scripts\pip3.6.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip._internal'

我的python是通过Anaconda安装的。我通过conda重新安装pip解决了这个问题:

conda install pip

之后,pip恢复正常。

答案 20 :(得分:0)

我通过以下方式解决了这个问题

sudo apt-get install python3-pip

这甚至适用于python2.7,太棒了...

答案 21 :(得分:0)

我的解决方案是将import pip添加到链接到pip/pip3命令的脚本中。

首先,使用您喜欢的文本编辑器和sudo模式打开文件(例如/usr/local/bin/pip)。例如,我使用sudo vim /usr/local/bin/pip打开脚本文件。

您将获得一些文件,如下所示:

import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

然后,在import pip之前插入语句from pip._internal import main,然后解决问题。

答案 22 :(得分:0)

我尝试使用以下命令解决此问题,它对我有用 卷曲https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py --force-reinstall

答案 23 :(得分:0)

这些通常是由于使用pip来“更新”系统安装的pip,和/或在用户下安装了多个pip。我的解决方案是清除用户下已安装的多个pip,重新安装pip repo,然后如上所述进行“ pip install --user pip”。

请参阅:https://github.com/pypa/pip/issues/5599,以获取正式的完整讨论并解决此问题。

答案 24 :(得分:0)

对我没有任何帮助,但只有一件事: 我在命令前面使用了sudo,它工作正常。

答案 25 :(得分:-1)

此命令对我有用。

卷曲here -o get-pip.py python get-pip.py --force-reinstall --user