在Ubuntu Docker镜像中同时安装python-pip与python3-pip的问题
Ubuntu Docker镜像同时安装Python2、Python3及对应pip的问题解决
要不要同时装python-pip和python3-pip?
- 如果你需要在镜像里同时用Python2和Python3开发/运行项目,得分别用
pip(对应Python2)和pip3(对应Python3)安装不同版本的依赖包,那肯定得同时装两者。 - 要是你只用到其中一个Python版本,留对应版本的pip就行,没必要装两个。
怎么避免安装python3-pip时删掉python-pip?
这是因为Ubuntu的apt包管理中,python-pip和python3-pip在部分版本里存在依赖冲突,分两次安装会触发apt自动移除冲突包。给你两个靠谱的解决办法:
办法1:一次性装完所有包
把所有需要安装的包放到同一个apt-get install命令里,让apt一次性处理依赖关系,就不会出现后装的包删除之前包的情况:
RUN apt-get update && apt-get install -y --no-install-recommends \ python2 \ python-pip \ python3 \ python3-pip && \ rm -rf /var/lib/apt/lists/*
(补充:加apt-get update是因为镜像里的apt源可能不是最新的;安装完成后清理/var/lib/apt/lists/*能大幅减小镜像体积,这是Docker镜像构建的常规优化操作)
办法2:用官方脚本安装pip2(更稳妥)
如果apt的包冲突实在无法解决,放弃用apt安装python-pip,转而用Python官方的脚本安装pip2。这样安装的pip2独立于apt包管理,不会和python3-pip产生冲突,还能获取Python2可用的最新pip版本(apt中的python-pip版本通常比较老旧):
RUN apt-get update && apt-get install -y --no-install-recommends \ python2 \ python3 \ python3-pip && \ # 下载并安装pip2 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2 && \ rm -rf /var/lib/apt/lists/*
内容的提问来源于stack exchange,提问作者noonenine
相关产品推荐
相关产品推荐

