我正在尝试通过上传一个 zip 文件来创建一个 lambda 函数,该文件的根目录下有一个 .py 文件,还有 2 个文件夹,其中包含通过 pip 下载的请求库。
运行代码本地工程文件。当我压缩并上传代码时,我经常收到此错误:
无法导入模块“main”:没有名为 requests 的模块
有时我确实设法解决这个问题,但它不一致,我不确定我是如何做到的。我正在使用以下命令:
在根目录zip -r upload.zip *
这就是我导入请求的方式:
导入请求
仅供引用: 1. 我尝试了多种不同的导入方法,但都失败了,所以我想知道这是否是问题所在? 2. 每次失败并且我能够使其在 lambda 中工作时,它都会涉及大量摆弄 zip 命令,因为我认为问题是我错误地压缩了内容并将它们隐藏在额外的父文件夹后面。
期待看到我犯下的愚蠢错误!
添加代码片段:
import json ##Built In
import requests ##Packaged with
import sys ##Built In
def lambda_function(event, context):
alias = event['alias']
message = event['message']
input_type = event['input_type']
if input_type == "username":
username = alias
elif input_type == "email":
username = alias.split('@',1)[0]
elif input_type is None:
print "input_type 'username' or 'email' required. Closing..."
sys.exit()
payload = {
"text": message,
"channel": "@" + username,
"icon_emoji": "<an emoji>",
"username": "<an alias>"
}
r = requests.post("<slackurl>",json=payload)
print(r.status_code, r.reason)
最佳答案
我在 stackoverflow 循环之外得到了一些帮助,这似乎一直有效。
zip -r upload.zip main.py 请求 requests-2.9.1.dist-info
关于python lambda无法检测打包的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35640650/