工具用的順手嗎?
你的回饋能幫助我們做得更好
將 Python .py、Cython .pyx 或專案 ZIP 轉換為 C/C++ 原始碼檔。
點選檔案選擇或拖入檔案
.py · .pyx · .zip
最大 1 MB
目前帳號單檔上限 1 MB(訪客 1 MB / 一般會員 2 MB / 進階會員 5 MB / 專業會員 20 MB)
雲端處理:檔案使用短期 OSS 憑證上傳,在獨立 FC 容器處理;OSS 檔案依儲存桶生命週期規則清理。
支援 .py、.pyx 或包含專案原始碼的 .zip,上傳上限依帳號等級遞增,最高 20 MB。
本工具只產生 C/C++ 原始碼,不會產生 .so/.pyd。生成程式碼仍需要相符的 Python 標頭檔、第三方相依套件和本機 C/C++ 編譯器。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
Cython 為 Python 程式及含型別宣告的 Cython 程式提供原始碼翻譯器。輸入可為單一 .py、.pyx,或包含專案原始檔的 ZIP;輸出語言可選 C 或 C++。單檔適合確認個別模組,專案 ZIP 則可保留套件路徑並批次處理多個原始碼模組。
原始碼翻譯只是建立擴充模組的第一階段:Cython 產生 C/C++ 檔後,仍需要相符的 Python 開發標頭、專案相依套件、系統函式庫及 C/C++ 編譯器,才能連結成 .so 或 .pyd。本工具輸出原始檔與處理報告,不會取代本機編譯,也不保證產物能在所有平台直接建置。
指南
依步驟完成操作,並透過範例核對輸入與結果。
單一模組選擇 .py 或 .pyx。專案 ZIP 應保留套件目錄和相關 .pxd、標頭檔等原始碼相依項目;請勿納入虛擬環境、快取、建置目錄或大型無關檔案。
一般 Python 擴充模組通常先選 C。程式使用 C++ 特性或需要 C++ 編譯器時選 C++;這只會改變產生的檔案,不會自動設定連結函式庫與編譯參數。
頁面會依帳號等級顯示上傳上限。處理完成後下載 ZIP,檢查各模組的 .c/.cpp 和報告,留意未處理檔案、語法錯誤與相依項目提示。
於目標作業系統安裝相符版本的 Python 標頭、Cython 相依套件及編譯工具鏈,依專案建置設定編譯與連結。接著在目標 Python 版本和平台匯入擴充模組並執行原有檢查。
情境
查看這項工具在不同工作與生活流程中的用法。
開發者可先產生 C/C++ 原始碼,再納入既有 wheel 建置流程;編譯參數、相依項目與發布平台仍由專案維護者管理。
維護人員可批次查看哪些模組能翻譯,並依報告補齊介面宣告、套件路徑或缺少的本機原始碼相依項目。
課程可用同一個小模組說明 Python/Cython 原始碼如何轉成 C/C++,以及後續編譯器產生平台擴充檔的差別。
問答
集中解答常見疑問與容易混淆的問題。
C 原始碼尚不是 Python 擴充模組。需要編譯器、與目標 Python 相符的標頭、第三方相依項目及連結設定,產生平台對應的 .so 或 .pyd 後才能匯入。
.py 使用 Python 語法,也可透過 Cython 純 Python 模式提供型別資訊;.pyx 還支援 Cython 擴充語法,例如 cdef。將擴充語法放入一般 Python 檔會產生語法錯誤。
模組使用 C++ 語法或需要與 C++ 函式庫互通時選 C++。切換輸出語言不會自動安裝 C++ 相依項目,也不會設定標頭路徑、連結參數或目標 ABI。
不會。ZIP 提供解析與翻譯所需的專案檔案;工具不會替你安裝任意相依項目,也不會產生可發布 wheel。請把必要宣告檔一併加入,並在本機準備實際建置相依套件。
須知
使用前了解適用範圍、結果限制與必要提醒。
產生的 C/C++ 原始碼可能包含大量產生內容,也可能保留原始碼片段;它不是保密格式。編譯結果會受 Cython/Python 版本、編譯器、系統標頭、編譯指令、第三方函式庫和目標平台影響。不同平台產生的二進位擴充模組通常不能直接互換。
上傳前請檢查 ZIP 內容與權限,只加入建置所需原始碼,不要放入金鑰或正式資料。報告用於說明處理狀態,不能證明編譯成功或執行正確;最終仍應在目標平台完成連結、匯入與功能驗證。
推薦
查找相關工具、專題與可用的 API 能力。