[英]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.