无服务器框架中的 Python 错误指出 - 无服务器错误:spawn docker ENOENT

Bru*_*ues 6 python node.js python-3.x serverless-framework aws-serverless

错误:

\n
Running "serverless" from node_modules\n\nDeploying serverless-flask to stage dev (us-east-1)\n\n\xe2\x9c\x96 Stack serverless-flask-dev failed to deploy (0s)\nEnvironment: darwin, node 16.0.0, framework 3.1.1 (local) 3.1.1v (global), plugin 6.0.0, SDK 4.3.1\nCredentials: Local, "default" profile\nDocs:        docs.serverless.com\nSupport:     forum.serverless.com\nBugs:        github.com/serverless/serverless/issues\n\nError:\nError: spawn docker ENOENT\n    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:19)\n    at onErrorNT (node:internal/child_process:480:16)\n    at processTicksAndRejections (node:internal/process/task_queues:83:21)\n
Run Code Online (Sandbox Code Playgroud)\n

我正在遵循这些说明(https://www.serverless.com/blog/flask-python-rest-api-serverless-lambda-dynamodb/),并且似乎无法弄清楚这一点,因为基本应用程序是在 python 而不是 javascript 中......大多数解决这个问题的人都使用 javascript 解决了它。

\n

小智 6

要解决此问题,您需要使用自定义块中的这些更改来更新serverless.yml文件

custom:
  pythonRequirements:
  pythonBin: python3
  dockerizePip: "false"
Run Code Online (Sandbox Code Playgroud)

我也面临同样的问题,我的问题是dockerizePip它设置为

dockerizePip: non-linux
Run Code Online (Sandbox Code Playgroud)

从serverless.yml文件中删除此条目或将其设置为 false


The*_*key 5

为了能够部署您的项目,serverless-python-requirements您的计算机上需要安装 docker(如果您使用的是 Windows,请考虑使用 docker 桌面或 Linux 虚拟机)

为什么我需要 Docker?

当您执行 a 时sls deployserverless-python-requirements启动 docker 容器来安装您放入requirements.txt文件中的所有依赖项,这些依赖项将在部署过程中使用

您收到此错误是因为您的容器未正确启动