我在Cloud9的AWS Resources菜单中创建了2个Lambda函数。
我想为这些函数提供通用的模块。
我为公共模块创建了新文件夹,并将路径~/environment/python/lib添加到PYTHONPATH of Preferences -> Python Support中。
我用Lambda(local)实现了Run的主函数。
但我找到Unable to import module 'main/lambda_function': No module named 'common'了。
我可以在Cloud9中为Lambda函数设置PYTHONPATH吗?
或者,有没有更好的做法让几个Lambda函数都有通用的模块?
我的文件夹树:
root
|-python
|-lib <- for uploading to Lambda Layers
common.py
|-app
|-main
|-lambda_function.py
|-main2
|-lambda_function.py我的lambda_function.py:
import common发布于 2020-06-03 13:53:09
在执行其他操作之前,只需在python文件中输出PYTHONPATH即可:
import os
print(os.environ['PYTHONPATH'])
import ...
def lambda_handler(event,context):
...您将看到,作为函数日志的一部分,它将环境变量输出为/var/runtime。即使您通过Cloud9设置来设置该路径,您也会像我一样发现这些设置并不适用。
我希望将我所有的层都设置在~/environment/layers/layername下,这样我就可以将我所有的库和依赖项都放在:~/environment/layers/scikit-learn/python/...下,我会使用相同的scikit learn目录来实际创建用于远程部署的层。
但这并不管用。
https://stackoverflow.com/questions/59332143
复制相似问题