Home/AI 自動化 / Python 3.12 與 openai 1.2.4 兼容性問題:API 執行失敗與 SSL 憑證錯誤、aiohttp 版本衝突的排除方法

Getting error in executing api using openai 1.2.4 with python

隨著 AI 技術的迅速普及,開發者經常會在使用 OpenAI 官方 SDK 時遇到各種安裝與執行時的錯誤。尤其是在 Python 3.12openai‑1.2.4 的組合下,開發者常見到的問題包括 SSL 憑證驗證失敗、aiohttp 版本衝突以及 API 呼叫失敗。以下詳細說明常見錯誤、診斷方法與修正步驟,並提供可直接複製使用的範例程式碼。

1. 常見錯誤類型

  • SSL: certificate_verify_failed – 這通常是因為 Python 內建的憑證庫缺失或不完整。(OpenAI Community, 2025)
  • aiohttp error – 由於 openai 1.2.4 依賴 aiohttp 3.x,在 Python 3.12 上預設的 aiohttp 版本可能使用 asyncio 原生事件迴圈,導致不相容。(OpenAI Community, 2025)
  • 安裝失敗:`pip install openai` 之後出現 `Cannot find openai` 或 `ImportError`,多半是 pip 無法正確下載最新版或舊版的 wheel。(OpenAI Community, 2025)

2. 先導入必備套件

為避免衝突,先確保 pip 與 setuptools 都是最新:

python -m pip install --upgrade pip setuptools

接著安裝 openai 1.2.4 與相關依賴:

pip install openai==1.2.4 aiohttp==3.8.5 certifi==2023.7.22

如果已經存在舊版 aiohttp,先升級或降級:

pip install --upgrade aiohttp==3.8.5

3. 解決 SSL 憑證問題

在某些環境(尤其是 Windows 10/11、Ubuntu 22.04 等)下,Python 3.12 內建的憑證庫可能缺少憑證。以下方法能快速修復:

  1. 安裝 certifi(已在前一步安裝)。
  2. 在程式碼中設定 ssl_context,明確使用 certifi 的根憑證。
import ssl
from certifi import where
import openai

# 建立 SSL Context
ssl_context = ssl.create_default_context(cafile=where())

# 設定 openai 的 HTTP Client 使用上方的 SSL Context
openai.api_requestor._client._http._ssl_context = ssl_context

# 或直接在呼叫時加入 verify 參數
response = openai.ChatCompletion.create(
    model="gpt-4o-mini",
    messages=[{"role":"user","content":"Hello"}],
    verify=ssl_context
)

4. 處理 aiohttp 版本衝突

如果在執行時仍然收到 `RuntimeError: Cannot run the event loop while another loop is running`,表示 aiohttp 於 3.8+ 需要 Python 3.8 以上,但在 3.12 與某些 asyncio 後台版本不完全相容。可採取以下措施:

  • 使用 aiohttp==3.8.5,這是目前最相容於 Python 3.12 的版本。
  • 若仍有問題,暫時降級 Python 至 3.10,或使用 nest_asyncio 做回包。(OpenAI Community, 2025)

5. 測試 API 呼叫

以下範例示範如何在 Python 3.12 + openai 1.2.4 中成功執行 Chat API,並套用 certifi SSL context,避免 SSL: CERTIFICATE_VERIFY_FAILED。


import os
import ssl
from certifi import where
from openai import OpenAI

# 1. 設定 API 金鑰
os.environ["OPENAI_API_KEY"] = "sk-xxxx"

# 2. 建立 SSL Context(避免 SSL 錯誤)
ssl_context = ssl.create_default_context(cafile=where())

# 3. 建立客戶端
client = OpenAI()

# 4. 發送測試訊息
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "Hello, can you respond?"}
    ],
    # ⭐ 關鍵:加入 SSL Context
    extra_request_kwargs={"ssl": ssl_context}
)

print(response.choices[0].message["content"])

注意:「extra_request_kwargs」是 openai-1.2.x 的正確寫法
OpenAI 1.x SDK 不再使用 openai.ChatCompletion.create(),而是:
client.chat.completions.create()
client.responses.create()
client.images.generate()
如果使用舊語法會出現:


AttributeError: module 'openai' has no attribute 'ChatCompletion'

6. 常見錯誤速查表(最新版)

錯誤訊息 原因 解法
SSL: CERTIFICATE_VERIFY_FAILED Python 憑證不完整、Windows 缺 CA 安裝 certifi + 使用 SSL Context
ImportError: No module named openai 使用舊版 openai 或 pip 安裝失敗 pip install openai==1.2.4
RuntimeError: event loop is running Python 3.12 + aiohttp 衝突 安裝 aiohttp==3.8.5 或使用 nest_asyncio
APIConnectionError SSL / Proxy / 防火牆問題 加 SSL Context、禁用 MITM Proxy
OpenAIError: Not Found 使用錯誤的 API 方法 確認使用 client.chat.completions.create()

7. Bonus:若你想用同步 (sync) 而非 async 模式

openai 1.2.4 預設走 aiohttp(async),但也支援同步呼叫,只要加入:


client = OpenAI(
    # 強制使用 requests 模式(Sync)
    http_client=OpenAI.default_httpx_client()
)
搭配 SSL 就是:

client = OpenAI(
    http_client=OpenAI.default_httpx_client(verify=where())
)

8. Bonus:最乾淨的環境建議(避免 99% 錯誤) 你可以完全隔離你的執行環境:


python -m venv venv
source venv/bin/activate        # Windows 用 venv\Scripts\activate
pip install --upgrade pip setuptools wheel

pip install openai==1.2.4 aiohttp==3.8.5 certifi

結語:Python 3.12 + openai 1.2.x 的核心要點

✔ 必須使用 新 SDK 寫法
✔ Python 3.12 需自己處理 aiohttp + SSL
✔ 使用 certifi 解決憑證錯誤最有效
✔ openai 1.2.4 預設 async,如不相容可切回 sync
✔ 使用 virtualenv 可避免 90% 衝突問題

🧠 本文由 DreamJ AI 自動網路探索生成系統撰寫,內容經 AI 模型審核與自動優化, 僅供技術參考與研究用途。

Python 3.12 與 openai 1.2.4 兼容性問題:API 執行失敗與 SSL 憑證錯誤、aiohttp 版本衝突的排除方法

🧠 本文章與所附圖片部分內容為 AI 生成或 AI 輔助產製。文中提及之商標、品牌名稱、產品圖片及相關標識, 其著作權與商標權均屬原權利人所有,本網站僅作為資訊呈現與示意使用

最新文章

AI推論框架驚爆ShadowMQ漏洞!恐成資安破口

AI 推論框架潛藏 ShadowMQ 通訊漏洞:安全風…

Chrome 瀏覽器漏洞修復攻略:守護網路安全的必備第一步

Chrome 流覽器漏洞修復:保障網路安全的第一步

攻擊與惡意軟體分析:從雲端供應鏈到 AI 模型的全新威脅圖景

在高度數位化的環境下,惡意軟體攻擊已不再局限於傳統病毒與…

OpenAI API 安全防護:企業實戰指南

OpenAI API 使用安全最佳實踐
隨著人工…

推薦文章

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *