iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
IT Operation

大學生的VirtualBox虛擬機與Ubuntu實戰30天系列 第 20

Day 20|在 Linux 虛擬環境中以 Requests 串接公開 API

  • 分享至 

  • xImage
  •  

在上一篇中,我們建立了專案專屬的 Python 虛擬環境,並完成了 requests 套件的安裝。環境建置完成後,本篇將透過一個簡單的實作,驗證遠端開發環境的運作狀態。

我們將撰寫一段簡短的 Python 腳本,呼叫公開且免金鑰的 RESTful API 抓取即時資料,並在 VS Code 遠端終端中完成執行與除錯流程。


1.實作目標與情境說明
我們選用免費、無需註冊金鑰的公開 API 服務(以抓取即時比特幣美元價格或公開 IP 資訊為例)。
透過此腳本,主要驗證以下三點:
1.虛擬環境內的第三方套件(requests)能否被直譯器正確載入。
2.虛擬機能否透過虛擬網卡正常連外發送 HTTP 請求。
3.VS Code 能否正常執行腳本並將 JSON 格式的回傳內容格式化輸出。


2.啟動虛擬環境
在開始撰寫程式碼之前,請確保終端機已進入專案目錄並啟動虛擬環境:

cd ~/projects/demo_project
source .venv/bin/activate

可透過確認指令確保路徑無誤:

which python

若輸出路徑包含 demo_project 目錄,即代表處於正確的隔離環境中。


3.撰寫 API 請求腳本
在 VS Code 中開啟 demo_project 資料夾,並於專案根目錄建立 fetch_data.py,寫入以下程式碼:

import requests


def get_crypto_price():
    # 使用 CoinGecko 公開 API 取得比特幣即時價格
    url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"

    try:
        response = requests.get(url, timeout=10)
        # 檢查 HTTP 狀態碼是否為 200
        response.raise_for_status()

        data = response.json()
        btc_usd = data["bitcoin"]["usd"]
        print(f"連線成功!當前比特幣價格為: ${btc_usd:,.2f} USD")

    except requests.exceptions.RequestException as error:
        print(f"網路連線或請求失敗: {error}")


if __name__ == "__main__":
    get_crypto_price()

程式碼重點說明:

  • requests.get():發送標準 HTTP GET 請求。
  • timeout=10:設定連線逾時上限為 10 秒,避免網路異常時腳本無限制卡住。
  • response.raise_for_status():若伺服器回傳 4xx 或 5xx 等錯誤代碼,將主動拋出例外,方便後續捕捉處理。
  • response.json():直接將回傳的 JSON 字串解析為 Python 原生字典格式。

4.執行與結果確認
存檔後,並執行該腳本

python fetch_data.py

若網路與虛擬環境設定正常,終端機將輸出類似如下的資訊:
https://ithelp.ithome.com.tw/upload/images/20260919/20183886QBsYfAnrn4.png


5.常見問題排查

  • 出現:
    https://ithelp.ithome.com.tw/upload/images/20260919/20183886esG56owfea.png

    • 原因:終端機當前目錄下找不到該檔案。這通常是因為在 VS Code 側邊欄建立新檔案時,滑鼠沒有先選中目標專案資料夾,導致檔案被建立在上層目錄(例如 projects/)而非專案內(projects/demo_project/)。
    • 解法:直接以滑鼠將 fetch_data.py 拖曳進 demo_project 資料夾內(確認與 requirements.txt 對齊)
  • 出現ModuleNotFoundError: No module named 'requests':

    • 原因:代表執行的終端機尚未啟動虛擬環境,直接使用了系統全域 Python。
    • 解法:請先執行 source .venv/bin/activate 確認終端機進入環境後再重新執行。

|明日目標:程式開發告一段落後,明天將介紹 Git 基礎配置與 .gitignore 實作,學習如何將專案虛擬環境與快取檔案正確排除在版本控制之外。|


上一篇
Day 19|在 Linux 中建立乾淨的 Python 專案虛擬環境
下一篇
Day 21|Git 基礎配置與 .gitignore 實戰
系列文
大學生的VirtualBox虛擬機與Ubuntu實戰30天22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言