2017-08-01 33 views
0

我一直在嘗試將Python模塊「Pulp」導入到Amazon AWS Lambda中,但出現錯誤。 Pulp是一個優化模塊,可以使用pip(「pip install pulp」)進行安裝,但在AWS Lambda中我不確定如何安裝,因此我將所有內容與來自本地計算機的Lambda函數一起壓縮並上傳到AWS Lambda 。在Amazon AWS上導入Python模塊「Pulp」Lambda

這是我收到的錯誤: -

「非包嘗試相對進口:ValueError異常 回溯(最近通話最後一個): 文件 「/var/task/lambda_function.py」,第5行,在lambda_handler 進口紙漿 文件從.constants「/var/task/pulp.py」,線路101,在 導入* ValueError異常:非包」

這裏試圖相對導入的鏈接.ZIP文件https://drive.google.com/open?id=0B7SjHToKYgr3cXlHenpoOFljMDg

在此先感謝。

回答

0

按照第http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

說明有關如何使用的virtualenv部署到AWS拉姆達。

+0

嗨斯圖亞特感謝您的回覆。上述問題已得到解決,但現在我得到另一個錯誤:'NoneType'對象沒有屬性'actualSolve':AttributeError Traceback(最近調用最後一次): 文件「/var/task/lambda_function.py」, (第40行,在lambda_handler prob.solve) 文件 「/var/task/Pulp1/pulp.py」,線1664,在解決 狀態= solver.actualSolve(個體,** kwargs) AttributeError的: 'NoneType'對象沒有屬性'actualSolve' –

+0

我認爲在AWS Lambda上無法找到求解器 –

+0

您是否通過virtualenv安裝? –

0

錯誤是一個標準的Python錯誤,說它只會從標準位置導入東西。由於包括當前目錄,你應該是不錯的,但你的代碼中包含

from . import pulp 

,當你在你的目錄有pulp.py。如果pulp.py是所有需要的,你會沒事的。但是pulp.py想要import .constants。那一個相對的參考,它會被罰款,因爲它應該是在一個模塊。在你的情況下,它不好。如果你想繼續沿着這條道路走,你將不得不經過並刪除這些相對的進口。

此外,您的.zip文件包含.pyc文件。讓它們在目標機器上生成。只需發送他們來自的.py的。