我正在为AWS Lambda创建一个部署包。在virtualenv中安装包后,Lambda需要压缩包含在'$VIRTUALENV/lib/python2.7/site-packages'文件夹中的所有内容。
当我在linux机器上执行这个过程时,它工作得很顺利。
但是,当我在Mac (Mac Sierra)上重复这个过程时,我遇到了一个小问题。
当我执行pip install Pillow时,Mac下载的是.dylibs而不是.so。因此在Lambda上部署失败。
我验证过,如果我将linux机器上的.so放到Pillow包中,它就可以在亚马逊网络服务上工作。
在苹果电脑上使用virtualenv时,除了.dylibs之外,还有什么方法可以下载.so吗?这将允许我将软件包从Mac无缝部署到AWS Lambda。
我的项目在规模上有点大。而Pillow并不是我可能需要的唯一遇到这些问题的软件包。
发布于 2017-08-07 16:13:20
virtualenv下载与运行它的Python解释器一起工作的包。据我所知,没有将包交叉编译到其他架构的选项。
您不能在OSX上本地运行Linux解释器,因此您需要使用Linux机器(真实的机器、容器或虚拟机)来构造正确的virtualenv。
最无缝的解决方案可能是容器(例如Docker for Mac)。然后,您可以将工作目录挂载到合适的容器中,并为Linux容器创建一个并行virtualenv。
https://stackoverflow.com/questions/45542098
复制相似问题