Python呼叫C程式

2021-10-25 04:23:41 字數 993 閱讀 6719

目錄

python呼叫c程式的意義

呼叫示例

編寫c程式

編譯c程式 呼叫

我們知道,python具有編寫開發快、程式可讀性良好、支援物件導向的特點。種類繁多的python原生庫和第三方框架使python承擔越來越多的任務。但是python自身的缺陷也確實是python開發者要面對的問題:受制於動態語言的影響,python的執行速度還是不能與靜態語言媲美;python的多執行緒受制於gil鎖的影響,無法實現真正意義上的併發...... 但是python的這些「致命」缺陷可以通過c語言來彌補,python原生包支援呼叫c語言的邏輯。於是,乙個python和c「強強聯合」的方式誕生了,我們可以發揮兩種語言各自的優勢來構建乙個強大的應用程式:發揮python的物件導向特點來編碼,充分利用python特點來處理io密集型作業,而使用c語言來處理計算密集型作業。

我們採用自底向上的順序構建演示邏輯。我們編寫乙個簡單的c語言**,來計算兩個整型數字的和,並把結果返回:

【add.c】

#includeint add(int number1, int number2)
使用gcc編譯c**:

gcc add.c -shared -o add.so
我們將add.c編譯後生成add.so檔案。

使用python的ctypes庫呼叫編譯好的so檔案即可:

from ctypes import *

# gcc add.c -shared -o add.so

if __name__ == '__main__':

model = cdll.loadlibrary("./add.so")

result = model.add(1, 5)

print("result:", result)

執行結果:

result: 6

python呼叫其他程式 python呼叫其他程式

在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...

C 控制台程式呼叫python

之前學習python,研究了一下使用c 呼叫python,現在把過程發出來給大家參考。參考 我的開發環境是vs2017 python 2.7.15 ironpython 2.7.7 使用python3以上的版本貌似不行 python實現協同過濾就不詳細介紹了,主要說一下除錯中碰到的問題 1 iron...

Python呼叫C語言程式方法解析

首先我們需要將編寫好的c程式檔案編譯為動態庫檔案 字尾名為.so 使用下面的命令 gcc 原檔名.c shared o 新檔名.so 然後在python程式中匯入模組 from ctypes import 在python中引入c動態庫,並定義乙個變數用來接收動態庫 a cdll.loadlibrar...