每当我试图使用pip安装任何软件包时,都会出现以下导入错误:

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'


guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

它之前运行良好,我不确定它为什么会抛出这个错误.

如果您需要任何进一步的细节,请让我知道,我会更新我的问题.

推荐答案

您一定是无意中升级了系统pip(可能是通过sudo pip install pip --upgrade之类的方式)

第10点.x调整其内部构件的位置.您看到的pip3命令是由您的软件包维护人员提供的(可能是基于debian的吧?)而且不是由pip管理的文件.

你可以在pip's issue tracker上阅读更多关于这方面的内容

你可能想升级你的系统pip,而不是使用virtualenv.

要恢复pip3二进制文件,需要使用sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

如果你想继续在"不受支持的领域"(在系统包管理器之外升级系统包),你可能只需要python3 -m pip ...而不是pip3.

Python相关问答推荐

删除满足条件的列表中的列表

无法使用可从 cli 运行的命令调用子进程

Pandas :列的值,然后按相同的 ID 分组和合并

数据集中值的 Python 总和

Haystack 为预测指定列

numpy.linalg.det 的时间复杂度是多少?

如何使用 sys.argv 将字符串变量从 shell 脚本传递给 python?

是否有更好的正则表达式来计算中文字母的数量并同时排除一些字符?

在 __next__() 中修改之前返回对象

在不迭代的情况下检测 Pandas DataFrame 列中的连续每月重复

有没有一种好方法可以将 pandas 列多索引转换为列类别?

如何从多个数据帧创建分层多索引数据帧?

缺失值的插值不是 NA

具有单一分类特征的 LSTM 预测

我想替换字母/单词,但我在代码的一个方面面临挑战

如何以必须从同一字符串中提取键和值的方式将字符串转换为字典

Numba 并行导致 for 循环中的结果不正确,我无法查明问题

如何减少 Python 中的多个嵌套 if 语句?

DRF 序列化程序的 BooleanField 为空 ForeignKey 字段返回 null

Tensorflow:InvalidArgumentError:图形执行错误: