我需要在 Ddev web docker 镜像内执行Python脚本,但是我遇到了困难,无法确定需要哪些Debian Python库才能让带有其他py包依赖项的Python二进制文件正常工作。
我需要在 Ddev web docker 镜像内执行Python脚本,但是我遇到了困难,无法确定需要哪些Debian Python库才能让带有其他py包依赖项的Python二进制文件正常工作。
你真的不想使用Python 2吧?(请参见下面的警告1和2)
在.ddev/config.yml
中添加以下内容:
webimage_extra_packages: [python]
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
.ddev/config.yaml
中的webimage_extra_packages
配置。sudo apt-get python
仍然安装Python 2。这在未来的Debian版本中可能会改变,因此升级DDEV时要小心。pip
也无法在最新的Python 2上进行本地安装(需要使用解决方法),所以您最好使用2to3
实用程序将脚本升级为Python 3。webimage_extra_packages: [python3, python-is-python3]
/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
.ddev/config.yaml
中的 webimage_extra_packages
配置。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
最终一切都安装正确。