2016-02-25 37 views
1

我試圖創建一個lambda函數,通過上傳一個zip文件與一個單一的.py文件在根和2個文件夾包含通過點擊下載的請求庫。蟒蛇lambda無法檢測打包模塊

運行代碼本地工程文件。當我壓縮和上傳代碼,我經常得到這個錯誤:

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

有時候我設法解決這個問題,但它的不一致,我不知道我是如何做的。我使用下面的命令:

在根目錄zip -r upload.zip *

這是我是如何導入請求:

import requests

FYI: 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) 
+0

請添加您的代碼 –

回答

1

我得到了計算器循環外一些幫助,這似乎工作始終。

zip -r upload.zip main.py requests requests-2.9.1.dist-info