我有一個Python
功能Lambda
使用幾個庫與二進制依賴:numpy
,scipy
,Pillow
等。在過去,我已經成功地將它們編上Amazon Linux
&部署到Lambda
。如何在AWS Lambda上使用Grequests?
我最近增加了Grequest
到一堆的依賴關係,但它拋出的錯誤似乎與Grequest
沒有直接關係。關於這個話題的Other questions導致了死衚衕,所以把我的帽子放在戒指中。
第一個錯誤是一個簡單的Grequests requires gevent
或類似的東西。爲了解決這個問題,我嘗試在Amazon Linux
實例上運行pip install gevent --no-binary :all:
,將其與我的代碼綁定並上傳到Lambda。這對錯誤沒有影響。
我再從gevent
回購下載的src
和使用make
(命令在回購的README丟給我沒有記錄錯誤)編譯它。這產生了一個egg
文件,我將其轉換爲whl
文件& ran pip install gevent.whl -t .
。
我將結果代碼與我的lambda.zip
捆綁在一起並上傳。這導致了一個新的錯誤: module initialization error: lib/libptf77blas.a.gz: invalid ELF header
libptf77blas.a.gz
是在lib
文件夾中我lambda.zip
文件。此文件夾包含幾個.so
和.a
文件,這是我建立在AWS的Linux,而組裝numpy
,scipy
,Pillow
等
據我所知,這是numpy
的依賴。我不明白的部分是:我的功能使用numpy
(大概libptf77blas.a.gz
就好之前加入grequests
到
所以我想講講編譯gevent
打破了依賴於我的其他binary
- 依賴性庫,或gevent
本身需要。 libptf77blas.a.gz
,並在它發現被混淆。
我跑了.so
文件gevent
取決於ldd
,但沒有提及libptf77blas.a.gz
,但是,我是一個編譯福利局,所以這是難以定論。
我想實現並行上傳Grequests
啓用,但我不清楚如何解決這個問題,或者不知道如何使用其他庫(我通常編寫JS,所以Python是第二語言)。
感謝很多人!!!!!!!!!!! thanx很多的努力:) – vks
即使是你自己的,你應該接受這個答案,因爲它是正確的。 – vks
我知道我正在回覆一個過去的帖子/回答,但如果您碰巧擁有與Python 3.6相同類型的zip文件,我會非常感激:D – kilokahn