在 AWS Lambda 上使用 Python 第三方套件教學

本文紀錄如何在 AWS Lambda 上安裝並使用 Python 第三方套件,步驟包含在本機先建立套件的 zip 檔,以及新增 Layer 到 Lambda 函式上

Lambda 函式預設無法使用 Python 第三方套件

我在 AWS Lambda 撰寫好函式(或是使用 $ zip <dest_filename>.zip <py_file>.py 製作 python zip 檔後上傳函式),函式中有使用到 requests 這個套件,執行 Test 時會顯示 No module named 'requests',原因就是 AWS Lambda 預設是沒有 requests 這個套件的,需要另外上傳套件檔,以下是解決方法。

  1. 安裝所需套件至 python 資料夾
  2. 打包 python 套件資料夾為 zip 檔
  3. 建立新 Layer
  4. 將 Layer 新增至函式

前兩步驟是在本機完成,後兩步驟是在 AWS 上進行,接下來將詳細解說各步驟。

1. 安裝所需套件至 python 資料夾

AWS 官方文件說額外的套件必須使用 「python」 這個名稱的資料夾打包,所以要在專案資料夾內建立一個 python 資料夾,並將套件安裝到裡面,詳細 Terminal 指令如下:

$ mkdir python
$ cd python

# 安裝單一套件
$ pip install --target . requests

# 一次安裝多個套件
$ pip install --target . -r requirements.txt
閱讀更多»

網頁輕量級 Jupyter!JupyterLite 介紹與使用心得

JupyterLite 是什麼?

JupyterLite 是可以直接使用瀏覽器開啟的輕量級 JupyterLab,主要是依靠一個稱為 Pyolite 的核心 (建立在 Pyodide 之上的 CPython 3.8 直譯器),目前也有支援類似 Jupyter notebook 的 RetroLab 版本。

Pyodide — Version 0.17.0

主要是由 Jupyter 的核心開發者所開發出來的,因此目前還算是非官方專案,他們之後預計會慢慢將各種平常會使用到的功能實現在 JupyterLite 上。

JupyterLite 的使用範例

點選連結進去後,會看到左側已經有一系列的示範代碼可以使用,例如開啟 pyolite - plotly.ipynb 檔案,即可測試在 JupyterLite 上 Plotly 的資料視覺化功能。

範例 1:[Plotly] 散佈圖、長條圖

[Plotly] scatter、bar chart (散佈圖、長條圖)
閱讀更多»

快速了解 VS Code 最新更新!聊聊 v1.58 的新功能

這次 VS Code 更新到 v1.58 版本啦!利用這篇文章來分享幾個本人覺得還滿值得一提的新功能吧!

比較有感的更新

繁體中文介面!

雖然英文介面已經用很習慣,但繁體中文用起來也還滿新鮮的!

繁中介面的歡迎頁

Terminals in the editor

現在可以將 terminal 建立或是移動到程式碼編輯的那個區塊,這個彈性還滿方便的,之後就不用被限制 terminal 只能放在下方了!

移動和新增的方式有四種,個人覺得第 2 點的直接拖曳 tab 感覺最方便

閱讀更多»

解決 pip 安裝套件時的 error: command ‘gcc’ failed with exit status 1

Python 的開發過程會經常需要使用 pip 來安裝第三方的套件,但有些套件會跳出
error: command 'gcc' failed with exit status 1 這樣的錯誤。

以下是本人使用 MacOS 在安裝爬蟲的 grab 套件時的解決方法,但其他套件也都適用。

閱讀更多»

使用 Python Pandas 轉換 Excel 時間格式

在 Excel 看到的時間格式是正常的,用 Pandas 讀取後卻變成一串奇怪的數字?

問題

  • 在 Excel 看到的時間是「2020/9/29 08:30:36 下午」,使用 Python 的 Pandas 讀取進來的資料卻顯示「44103.8545833333」?
    – 這到底是什麼時間格式?
    – 該怎麼轉換呢?

為什麼會有這個狀況?

  • 由於 Excel 有自己計算時間格式的方式,因此使用 Python 的 Pandas pd.read_excel('file.xlsx') 讀取時會將原始的時間格式給讀取進來。
  • 若嘗試著把 Excel 時間資料改為「通用格式」,就會發現真的變成那串奇妙的數字了!

該如何解決?

  • 只要加上一行程式碼就可以轉換完成囉!
    – 記得要另外匯入 datetime
    – df[‘date’] 為原始時間欄位
閱讀更多»