You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04升级pip后pip3无法使用,咨询pip与pip3的差异及解决

我来帮你捋清楚这个问题,先把pip3报错的坑填上,再给你讲明白pip和pip3到底有啥不一样~

第一步:修复pip3的报错问题

你碰到的ImportError: cannot import name 'main',是因为升级pip后,系统原来的/usr/bin/pip3脚本和新安装的pip版本不兼容导致的,修复方法超简单:

  • 打开系统自带的pip3脚本文件:sudo nano /usr/bin/pip3
  • 把原来的代码块:
    from pip import main
    if __name__ == '__main__':
        sys.exit(main())
    
    替换成适配新版pip的代码:
    from pip._internal.main import main
    if __name__ == '__main__':
        sys.exit(main())
    
  • 保存退出(按Ctrl+O回车确认,再按Ctrl+X退出编辑器),之后再运行pip3 --version,应该就能正常显示版本号啦。
搞懂pip和pip3的核心区别

在Ubuntu 18.04这类系统里,默认同时预装了Python 2.x和Python 3.x两个版本:

  • pip是Python 2.x专属的包管理工具,用来给Python2安装第三方依赖包;
  • pip3是Python 3.x专属的包管理工具,对应给Python3安装包。

你之前的状态是:系统里只装了Python3的pip(也就是pip3 9.0.x),Python2的pip没安装,所以输入pip会提示你要装python-pip。那为什么升级pip3 install pip之后,pip突然能用了?因为你用Python3的pip安装了新版pip,这个新版pip会自动创建pip和pip3两个可执行文件,但系统原来的/usr/bin/pip3脚本没同步更新,导致冲突报错;而新生成的pip脚本是适配新版pip的,所以能正常运行。

现在用pip和pip3安装包效果一样吗?

这得看你的pip现在指向的是哪个Python版本:

  • 先运行pip --version,看输出里的Python版本,比如如果显示pip 19.2.3 from ... (python 3.6),那这个pip其实就是给Python3装包的,和pip3效果完全一样;
  • 如果pip指向的是Python2(比如显示python 2.7),那两者就有区别了:pip装的包只有Python2能调用,pip3装的包是给Python3用的。

所以等你修复好pip3之后,不管用pip3 install tensorflow-cpu还是(如果pip指向Python3的话)pip install tensorflow-cpu,都能成功给你的Python3安装tensorflow-cpu。

内容的提问来源于stack exchange,提问作者Nikesh Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:05:51