gpt4 book ai didi

python - 如何在Windows机器上 pip 安装Linux软件包(适用于AWS Lambda)?

转载 作者:行者123 更新时间:2023-12-02 19:51:13 29 4
gpt4 key购买 nike

我正在尝试编写Python AWS Lambda脚本。 Python代码可在Windows本地运行,但使用的是通过pip安装的 Windows软件包。当上传到AWS Lambda时,我需要包括 Linux软件包

例如,当我运行pip install pandas时,我得到:

Downloading pandas-1.0.1-cp37-cp37m-win_amd64.whl

但是我需要(用于上传到AWS Lambda的)是:
pandas-1.0.1-cp37-cp37m-manylinux1_x86_64.whl

我的尝试

我尝试使用Docker在Windows中模拟Linux环境。我的想法是将Linux软件包pip安装在Docker中,然后将其复制到我的本地计算机上。我认为可以通过 Docker Volume 来完成。我尝试使用Dockerfile做到这一点:
FROM python:3.7-slim-buster

WORKDIR /usr/src/app

# Download python packages to /usr/src/app/lib
RUN mkdir -p /usr/src/app/lib
RUN pip3 install pandas -t /usr/src/app/lib

# Copy the python pacakges to local machine
VOLUME host:/myvol
RUN mkdir /myvol
COPY /usr/src/app/lib /myvol

但是当我运行docker build时出现错误:

COPY failed: stat /var/lib/docker/tmp/docker-builder233015161/usr/src/app/lib: no such file or directory

最佳答案

多亏了explanation from @C.Nivs,可以使用Docker进行交互:

  • 首先使用docker run -it python:3.6-slim bash交互式运行docker。然后创建一个文件夹“target”并将其pip安装到其中(这将安装linux软件包)。记下容器ID(我的命令行显示root @ 31d9be68deec:/#。容器ID为31d9be68deec)
  • mkdir /target 
    pip install pandas -t /target
  • 然后打开一个新的命令提示符,并使用docker cp将文件从容器复制到本地。以下内容从容器中的target文件夹复制到本地文件夹libs。
  • docker cp <container_id>:/target libs

    而已。 python软件包现在在本地文件夹 libs中可用。

    来自@ C.Nivs的注释:“COPY并没有按照其名称说明。COPY是一个构建步骤,它将文件从构建上下文(正在构建图像的位置)复制到图像本身。走另一条路”。

    关于python - 如何在Windows机器上 pip 安装Linux软件包(适用于AWS Lambda)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60604477/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com