繁体   English   中英

在AWS Lambda上找不到Setuptools

[英]Setuptools never found on AWS Lambda

我正在尝试使用AWS Lambda来做一些python包内省。

我想要做的是,在git push上,检查一个包,安装它的依赖项(内省需要包依赖项),然后运行工具。 AWS默认情况下没有安装pip(你应该捆绑你自己的依赖项) - 所以我将pip与我的lambda函数捆绑在一起。

除了尝试安装包依赖项之外,我的lambda的每个其他部分都可以工作。 尝试将已捆绑的pip与签出包一起使用时,尝试运行setuptools失败:

Collecting alembic==0.8.3 (from -r /tmp/tmpnx0tY0/requirements.txt (line 1)) 
Downloading alembic-0.8.3.tar.gz (935kB) 
Complete output from command python setup.py egg_info: 
Traceback (most recent call last): 
File "<string>", line 1, in <module> 
ImportError: No module named setuptools 
 ---------------------------------------- 
Command "python setup.py egg_info" failed with error code 1 in /tmp/tmp30m2KN/alembic

我已经尝试了一切:将当前路径(使用setuptools)添加到路径,将setuptools复制到temp目录,运行pip install setuptools ,使用--global-options传递--global-options ,尝试使用指定PYTHONPATH的env进行pOpen ,甚至尝试使用旧版本的pip: pip install -r requirements.txt --download --no-install 似乎没什么用。

如何通过这个python setup.py egg_info调用来成功找到setuptools?

您是否考虑过使用Jenkins(或任何其他CI工具)挂钩到您的Git存储库,在push上构建存储库,然后在运行之前将包含所有依赖项的打包lambda上传到S3?

在AWS Lambdas中,您只能将文件下载到/ tmp文件夹,并且您的空间限制为50mb。 这50mb还包括lambda函数消耗的空间。 Lambdas是拉链的,不包含pip是有原因的。

我使用Lambda一点,我不认为Lambda支持它。 您需要使用自己的CI工具(Jenkins是一个不错的选择)。 否则,您需要在本地构建它,然后使用AWS Lambda插件上传安装了依赖项的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM