簡體   English   中英

python lambda無法檢測打包的模塊

[英]python lambda can't detect packaged modules

我正在嘗試通過上傳一個zip文件(其根目錄為單個.py文件和2個文件夾,其中包含通過pip下載的請求lib)來創建lambda函數。

運行代碼本地工作文件。 當我壓縮並上傳代碼時,我經常會遇到此錯誤:

Unable to import module 'main': No module named requests

有時我確實設法解決了這個問題,但是它並不一致,而且我不確定該如何做。 我正在使用以下命令:

在根目錄zip -r upload.zip *

這就是我導入請求的方式:

import requests

僅供參考: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 requests-2.9.1.dist-info

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM