AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1068719
Accepted
Diagon
Diagon
Asked: 2018-08-25 16:13:08 +0800 CST2018-08-25 16:13:08 +0800 CST 2018-08-25 16:13:08 +0800 CST

python 包管理器 - 避免与 apt-get 冲突

  • 772

刚刚阅读了有关升级 pip 的评论后,我运行了:

sudo pip3 install --upgrade pip

正如@ByteCommander 指出的那样,升级到/usr/local/bin/pip3,而发行版的版本(来自python3-pip)位于/usr/bin/pip3,并且由于PATH 中的顺序,第一个版本具有优先权。这似乎工作正常,但如果我专门运行 Ubuntu 的版本(16.04),我会收到一个错误:

/usr/bin/pip3 -V
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'

这让我对 python 升级持怀疑态度。所以,我一直在尝试安装一个实际上来自 git repo 并且不在任何 apt-get repos中并且也具有依赖关系的python 包。

python apt pip
  • 3 3 个回答
  • 1141 Views

3 个回答

  • Voted
  1. Steve
    2018-08-26T06:46:29+08:002018-08-26T06:46:29+08:00

    经过多年处理 Python 依赖问题的经验后,我的意见是,您不应该在 apt 之外升级系统 Python 包。这总是会导致这些类型的问题。系统包管理器提供了 Python 的稳定版本和具有复杂依赖系统的各种 Python 包,当您尝试在 apt 之外手动更改这些包时,可能会造成混乱。

    我建议清除 python-pip,重新安装 apt 提供的版本,然后只使用系统 Python 执行系统相关任务和不需要额外包的小脚本。对于需要通常使用 pip 安装的其他软件包的开发工作,您可以创建虚拟环境(基本上是不会影响系统 Python 的新 Python 安装),或者甚至更好(IMO),安装允许的 Anaconda Python您可以在不破坏系统 Python 的情况下使用 pip 和 conda 安装 Python 包。

    • 2
  2. Best Answer
    Diagon
    2018-08-26T05:16:30+08:002018-08-26T05:16:30+08:00

    正如@siddesh-chavan 指向的链接所示,apt-get 和 python 包管理器的接口存在一些问题。我不会推荐那个链接的解决方案。相反,我认为最好阅读这篇文章,如果您已经升级了 pip/pip3,那么请以这种方式降级。结果是,不要升级系统的pip或pip3。使用 . 在本地进行安装和升级pip* install --user。

    第二个链接下方的答案也提到了虚拟环境,@steve 在他的答案中也提到了 - 见下文。

    • 1
  3. siddesh chavan
    2018-08-25T17:56:36+08:002018-08-25T17:56:36+08:00

    这方面已经有帖子了。

    https://stackoverflow.com/questions/28210269/importerror-cannot-import-name-main-when-running-pip-version-command-in-windo

    这对我有用。

    • 0

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve