如何解决如何在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 举报,一经查实,本站将立刻删除。