您真的不想使用 Python 2 吗?
截至 2022 年 1 月,在 Debian 11 Bullseye 映像上,sudo apt-get python 仍然安装 Python 2,因此:
webimage_extra_packages: [python]
.ddev/config.yml 解决了眼前的问题。
但是,请注意 Python 2 完全 EOL 且不受支持。此外,重要的包管理器 pip 不再能够在最新的 Python 2 上本地安装(没有变通方法),因此您最好使用 2to3 实用程序将脚本升级到 Python 3 兼容性。
一旦在 Python 3 上,您通常也可以解决需要安装 phython3-pip 包的问题,因为大多数 Python 3 包都是为 Debian 捆绑的。此处列出了 Debian Python 3 软件包:https://packages.debian.org/stable/python/
因此,您可以使用以下 Ddev 配置将 Python 3 安装到 /usr/bin/python 以及您的 py 脚本的大多数其他包依赖项。
webimage_extra_packages: [python3, python-is-python3, python3-somepackage, python3-anotherpackage]
注意,默认情况下,Python 3 安装到 /usr/bin/python3,因此添加 python-is-python3 包以使 python 执行 Python 3。
如果您的依赖项未捆绑,并且您需要使用 pip 或其他 python 包管理器,那么您必须在 .ddev/web-image/Dockerfile 处实现自定义 Dockerfile,如下所示:
ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com \
&& apt update
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -o Dpkg::Options::="--force-confold" --no-install-recommends --no-install-suggests python3 python-is-python3 python3-pip
RUN pip3 install somepackage anotherpackage
注意:自定义 Dockerfile 将覆盖 .ddev/config.yaml 中的 webimage_extra_packages 配置。