如何在Windows计算机上为Python下载/打包Linux二进制文件?

问题描述

我正在Windows桌面上的Python 3.7中构建AWS Lambda函数。我已经pip安装了所有要求,在本地成功编写并测试了脚本。用依赖项对脚本进行.zip压缩并将程序包部署到Lambda之后,我意识到其中一个依赖模块使用本地Windows二进制文件(.pyd文件)。由于Lambda用于Python 3.7运行时的操作系统是Amazon Linux,因此无法正常工作。

我尝试使用pip下载/安装Linux的依赖项,只是为了将它们打包在本地。我运行了pip install -r requirements.txt -t linux_packages --platform manylinux1_x86_64 --only-binary=:all:,但遇到了错误:

错误:找不到满足pywin32!= 226要求的版本; platform_system ==“ Windows”(来自portalocker〜= 1.6; platform_system ==“ Windows”-> msal-extensions〜= 0.2.2-> azure-identity->-r requirements.txt(第3行))(来自版本:没有) 错误:找不到pywin32!的匹配分布!= 226; platform_system ==“ Windows”(来自portalocker〜= 1.6; platform_system ==“ Windows”-> msal-extensions〜= 0.2.2-> azure-identity->-r requirements.txt(第3行))

我一直无法找到为Windows上的Lambda提取适当的Linux依赖模块的方法。我意识到,如果我在Linux机器上进行此操作就可以了,但是我可以在混合平台环境中工作,并且构建机器是Windows服务器(不可协商)。

我的requirements.txt文件包含:

boto3==1.7.74 
azure-storage-blob 
azure-identity

Windows平台需求来自azure-identity模块(实际上是deps)。参见https://github.com/AzureAD/microsoft-authentication-extensions-for-python/blob/dev/setup.py#L28

是否可以在Windows上执行此操作?我能想到的唯一解决方法是在Linux Docker容器中执行所有这些操作(pip安装,创建Lambda程序包),但是在我们的构建服务器上将无法使用。是否可以从混合平台(Windows)环境中打包在Linux上运行的Lambda?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...