在Docker Ubuntu 18.04上安装PIP3和PYTHON3.7

18
我需要在我的Docker Ubuntu18.04上安装Python3.7和Python3.7的pip3。我可以安装3.7版本,但无法删除Python3.6版本的pip3。

我需要在Docker Ubuntu 18.04中安装Python3.7和对应的pip3。我已经安装了3.7版本的Python,但是我无法删除Python3.6版本的pip3。

FROM ubuntu:18.04
# ...
RUN apt-get update && apt-get install -y \
        software-properties-common
    RUN add-apt-repository ppa:deadsnakes/ppa
    RUN apt-get update && apt-get install -y \
        python3.7 \
        python3-pip
    RUN python3.7 -m pip install pip
    RUN apt-get update && apt-get install -y \
        python3-distutils \
        python3-setuptools

而且我有

root@ef0c924ba7fa:/tornado_api# python3.7 --version
Python 3.7.3
root@ef0c924ba7fa:/tornado_api# pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

应该在/usr/lib/python3.7/下使用pip3

目前我得到的结果是

root@ef0c924ba7fa:/tornado_api# which pip3
/usr/bin/pip3
root@ef0c924ba7fa:/tornado_api# readlink $(which pip3)
root@ef0c924ba7fa:/tornado_api# 

1
which pip3 返回什么? - MTCoster
如果存在符号链接,readlink 应该遵循它。 - MTCoster
1
我明白了,我猜pip3基本上没有符号链接。 - loretoparisi
7
在我看来,目前在 Debian/Ubuntu 上使用 Python 3 非常麻烦。你无法仅依靠 Python 3.7 的基础安装来创建有用的 Python 3.7 环境。目前我认为最干净的方法是使用 get-pip.py 来创建一个 3.6 最小化的镜像,而不需要触及 python3-pipapt install python3.7 curl python3-distutils && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3.7 get-pip.py - hoefling
如果您不需要进行任何复杂的安装,可以直接使用 python:3.7 Docker 镜像作为基础。这是一个基于 Linux 的镜像,已经安装了所有 Python 的依赖项。 - Raj Srujan Jalem
显示剩余6条评论
5个回答

4

看起来这个已经过期了,不过我想知道是否只需执行 python3.7 -m pip install --upgrade pip 命令就可以解决问题。

FROM ubuntu:18.04
# ...
RUN apt-get update && apt-get install -y \
        software-properties-common
    RUN add-apt-repository ppa:deadsnakes/ppa
    RUN apt-get update && apt-get install -y \
        python3.7 \
        python3-pip
    RUN python3.7 -m pip install pip
    RUN apt-get update && apt-get install -y \
        python3-distutils \
        python3-setuptools
    RUN python3.7 -m pip install pip --upgrade pip

1

这对我来说很好用...



FROM ubuntu:18.04

RUN apt-get update && apt-get install -y software-properties-common gcc && \
    add-apt-repository -y ppa:deadsnakes/ppa

RUN apt-get update && apt-get install -y python3.8 python3-distutils python3-pip python3-apt


1
尝试使用 'sudo apt purge pip3' 或 'sudo apt-get purge pip3' 进行卸载。 如果不起作用,则尝试使用 pip3 卸载 pip3。(我不太确定怎么做) 接下来要尝试的是使用 'pip3 install pip3' 来更新 pip3。(我想是这样的) 如果以上方法都不行,那我就不知道了。

1
如果您不需要进行任何复杂的安装,可以简单地使用一个python:3.7 docker镜像作为基础。它是一个基于Linux的镜像,已安装了所有Python要求。
探索不同的Python镜像和用法:https://hub.docker.com/_/python

Eg.:

FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./your-daemon-or-script.py" ]

如果您的需求需要使用相同的Ubuntu镜像,您可以参考这个答案:在Docker中安装pip


1

只需重新安装

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接