Serverless實踐系列(二):爲Python雲函數打包依賴

在使用無服務器雲函數SCF時通常會遇到導入第三方庫的問題,很多開發者比較頭疼是:應該如何打包進去?這裏,推薦幾個不錯的方法。

方法1: 官方方案

官方方案地址:
https://cloud.tencent.com/document/product/583/9702

在這個方案中,基本上有以下幾個步驟:

  • 獲得依賴列表
  • 安裝依賴到目錄
  • 生成zip
  • 測試

以安裝Pillow爲例: 安裝pipreqs,可以使用pip install pipreqs,這個是一個可以獲取本文項目中依賴的工具

建立文件夾,並且建立測試文件:

文件內容:

import PIL

獲得需要依賴,生成文件:

文件內容:

安裝requirements:

sudo pip3 install -r requirements.txt -t /home/dfounderliu/code/pillowtest

查看結果與本地測試:

壓縮文檔:

雲函數中測試:

提示錯誤:

按照雲函數要求寫main_handler:

至此,通過官方提供的方法安裝完成。

方法2: Pycharm快速安裝

首先,新建項目pillowtest,這裏要選擇virtualenv

然後,建立文件index.py

安裝Pillow:


安裝完成之後,可以看到:

此時我們將安裝過來的文檔移動到pillowtest的目錄下,然後將非venv目錄進行壓縮:


此時,我們將結果上傳到雲函數,並適當修改index.py


方法3: 自行復製法

這種方法是指,我們用了某個包,可以自己下載源碼並且將其複製到目錄下,具體方法可以參考上一篇實戰:

Serverless實踐系列(一):如何通過SCF與自然語言處理爲網站賦能

作者介紹:

劉宇,騰訊雲Serverless團隊後臺研發工程師。畢業於浙江大學,先後參與騰訊云云函數產品研發、自動擴縮容、CLI等模塊建設以及社區相關工作。本文轉載自微信公衆號 ServerlessCloudNative(ID:ServerlessGo)

相關文章:

《Serverless 實踐系列(一):如何通過 SCF 與自然語言處理爲網站賦能》
《Serverless 實踐系列(三):突破傳統 OJ 瓶頸,“判題姬”接入雲函數》
《Serverless 實踐系列(四):網站監控腳本的實現》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章