如何将Python、pip或conda包添加到DDEV?

5

我需要在 Ddev web docker 镜像内执行Python脚本,但是我遇到了困难,无法确定需要哪些Debian Python库才能让带有其他py包依赖项的Python二进制文件正常工作。

2个回答

7

在DDEV上使用Python 2

你真的不想使用Python 2吧?(请参见下面的警告1和2)

.ddev/config.yml中添加以下内容:

webimage_extra_packages: [python]

如果你的Python 2脚本需要通过pip安装额外的软件包依赖,你需要使用自定义的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 python python-pip
RUN pip install somepackage anotherpackage

注意:自定义的Dockerfile将覆盖.ddev/config.yaml中的webimage_extra_packages配置。
注意1:截至2022年,DDEV Web镜像运行Debian 11,并且sudo apt-get python仍然安装Python 2。这在未来的Debian版本中可能会改变,因此升级DDEV时要小心。
注意2:Python 2已经达到了其“生命结束”的状态并不受支持。另外,重要的包管理器pip也无法在最新的Python 2上进行本地安装(需要使用解决方法),所以您最好使用2to3实用程序将脚本升级为Python 3。
在DDEV上使用以下Ddev配置将Python 3安装到/usr/bin/python中,并安装大多数py脚本所需的其他附加软件包依赖项。
webimage_extra_packages: [python3, python-is-python3]

注意,默认情况下,Python 3已安装到/usr/bin/python3,因此添加python-is-python3软件包来使python执行Python 3。
通常情况下,您也可以绕过需要安装python3-pip软件包的问题,因为大多数Python 3软件包已经捆绑在Debian中。 因此,可以通过逗号分隔的名称将其他Python 3软件包依赖项添加到webimage_extra_packages中。请参见这里的Debian稳定版Python软件包列表
如果您的依赖关系未捆绑并且需要使用pip、Conda或另一个python软件包管理器,则必须像这样实现自定义Dockerfile.ddev/web-image/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 配置。

4
非常感谢您提供的指南 -- 我正在使用需要 Python 2 的设置进行 yarn install,还需要make
按照您的建议,我使用了: webimage_extra_packages: [build-essential, python] 参考自https://techoverflow.net/2018/06/04/fixing-npm-node-gyp-error-not-found-make-on-ubuntu/ 接下来,我遇到了另一个错误,与我的 NodeJS 版本过新有关,所以我将其降级: nodejs_version: "14" 如下指示: https://ddev.readthedocs.io/en/latest/users/cli-usage/#nodejs-npm-nvm-and-yarn 最终一切都安装正确。

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