【发布时间】:2017-04-06 02:15:46
【问题描述】:
我需要在每天运行一次的 python 脚本中进行休息调用。 我无法使用 AWS Lambda 将“请求”包打包到我的 python 包中。我收到错误消息:“无法导入模块 'lambda_function':没有名为 lambda_function 的模块”
我将其分解为 hello_world 预定义脚本。我可以把它打包成一个 zip 并上传。一切正常。一旦我将“导入请求”放入文件中,我就会收到此错误。
这是我已经做过的:
- zip 和项目文件夹(包括子文件夹)的权限设置为 `chmod 777`。所以权限应该不是问题。
- 脚本本身位于根文件夹中。当你打开 zip 文件时,你会直接看到它。
- 我使用 `sudo pip install requests -t PATH_TO_ROOT_FOLDER` 将 requests 包安装到项目的根文件夹中
一切的命名是这样的:
- 压缩文件:lambda_function.zip
- py 文件:lambda_function.py
- 处理程序方法:lambda_handler(event, context)
- “webconfig: lambda_function.lambda_handler”中的处理程序定义
最后我要运行的文件是这样的:
import requests
import json
def lambda_handler(event, context):
url = 'xxx.elasticbeanstalk.com/users/login'
headers = {"content-type": "application/json", "Authorization": "Basic Zxxxxxxxxx3NjxxZxxxxzcw==" }
response = requests.put(url, headers=headers, verify=False)
return 'hello lambda_handler'
我很高兴能得到任何帮助。我已经在这个问题上使用了多个小时。
【问题讨论】:
-
在您的问题中,
pip install命令中-t选项的位置不正确 - 它必须是pip install requests -t PATH_TO_ROOT_FOLDER。你是不是打错了,或者这就是你真正运行它的方式? -
@Leon:对。刚刚检查了历史,我就像你在这里提到的那样做了。 :) 所以这并没有导致问题。
-
你在本地使用什么版本的Python?
-
@Leon: 2.7.12 (15chars)
标签: python python-2.7 amazon-web-services aws-lambda