我正在嘗試爲poker-eval編寫一個Python包裝器,一個c靜態庫。我可以在ctypes上找到的所有文檔都指出它適用於共享/動態庫。有靜態庫的ctypes嗎?靜態庫的ctypes?
我知道關於cython,但是我應該使用它還是將poker-eval重新編譯爲動態庫,以便我可以使用ctypes?
感謝,
邁克
我正在嘗試爲poker-eval編寫一個Python包裝器,一個c靜態庫。我可以在ctypes上找到的所有文檔都指出它適用於共享/動態庫。有靜態庫的ctypes嗎?靜態庫的ctypes?
我知道關於cython,但是我應該使用它還是將poker-eval重新編譯爲動態庫,以便我可以使用ctypes?
感謝,
邁克
選擇是真的取決於你。如果你有能力重新編譯庫作爲共享對象,我會建議,因爲它會盡量減少你必須維護的非python代碼。否則,您將需要構建一個鏈接到靜態庫的python擴展模塊,並封裝它所公開的函數。
您提到了Cython;這裏的相關手冊頁面,如果你走這條路線:
http://docs.cython.org/src/tutorial/clibraries.html
還有痛飲和高硼硅。
我不能肯定地說沒有模塊存在,但是動態庫的優點(使用更少的空間,而無需重新編譯依賴程序可以更新)是這樣的,你可能會更好過這樣做。