How do I pip install Linux packages on a Windows machine (for AWS Lambda)?(如何在Windows计算机上PIP安装Linux软件包(适用于AWS Lambda)?)
问题描述
我正在尝试编写一个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环境。我的想法是在Docker中通过pip安装Linux包,然后将它们复制到我的本地机器上。我认为这可以通过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时,我收到错误:
复制失败:Stat/var/lib/docker/tmp/docker-builder233015161/usr/src/app/lib:没有这样的文件或目录
推荐答案
多亏了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
文件夹复制到本地文件夹库。
docker cp <container_id>:/target libs
就是这样。Python包现在位于本地文件夹libs
中。
@C.Nivs请注意:"Copy并没有像它的名字所暗示的那样做。Copy是一个构建步骤,它将文件从构建上下文(构建映像的位置)复制到映像本身。它不允许事情朝着相反的方向发展"。
这篇关于如何在Windows计算机上PIP安装Linux软件包(适用于AWS Lambda)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在Windows计算机上PIP安装Linux软件包(适用于AWS Lambda)?
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 如何将一个类的函数分成多个文件? 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 沿轴计算直方图 2022-01-01