Docker安装了错误的Python版本,尽管指定了版本

jm2pwxwz  于 2022-12-03  发布在  Docker
关注(0)|答案(1)|浏览(212)

这是我的Dockerfile中安装Python和代码依赖项的部分。

FROM ubuntu:18.04

RUN apt-get update && \
    apt-get install -y software-properties-common && \
    add-apt-repository ppa:deadsnakes/ppa && apt-get update && apt-get install -y \
  python3.8 \
  python3-pip \
  && rm -rf /var/lib/apt/lists/*

RUN ln -s /usr/bin/python3 /usr/bin/python
RUN ln -s /usr/bin/pip3 /usr/bin/pip

# Update Python with the required packages
RUN pip install --upgrade pip
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

创建图像,然后当我运行代码时,我得到这个错误

q9zp213vt4-algo-1-cqgxl | /usr/local/lib/python3.6/dist-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.

这条消息提醒我使用Python 3.6,当我使用CLI检查图片的Python版本时,我确实可以看到它是默认的Python版本3.6.9
很抱歉问这个基本的问题,但是我对Docker不熟悉,我不知道我哪里做错了。Ubuntu的基本映像不能更改。

83qze16e

83qze16e1#

您需要设置特定的Python 3版本。RUN ln -s /usr/bin/python3 /usr/bin/python只告诉Ubuntu使用默认的Python 3而不是Python 2,但不告诉Ubuntu使用哪个Python 3。在我的计算机上,python3链接到python3.10。您可以强制将版本替换为RUN ln -fs /usr/bin/python3.8 /usr/bin/python3

相关问题