亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > python3調用c語言代碼的全過程記錄

python3調用c語言代碼的全過程記錄

熱門標簽:白銀外呼系統 海南400電話如何申請 陜西金融外呼系統 哈爾濱ai外呼系統定制 廣告地圖標注app 唐山智能外呼系統一般多少錢 騰訊外呼線路 激戰2地圖標注 公司電話機器人

開發環境

 linux: python3.5.2 + ubuntu-gnome-16.04-desktop-amd64

 windows:cygwin + powershell + python3.6

膠水語言python為什么要調用c代碼?

 c與python對比python不擅長"大量運算"任務,python程序優勢在于:編寫簡單,適合"IO密集型作業"(比如打開文件,下載圖片,運行腳本)。python作為知名的"膠水語言",快速實現"計算密集型作業"的方法就是"把c的代碼拿過來直接用"。

 Python中的ctypes模塊可能是Python調用C方法中最簡單的一種。ctypes模塊提供了和C語言兼容的數據類型和函數來加載dll文件,因此在調用時不需對源文件做任何的修改,也正是如此奠定了這種方法的簡單性。

 一、linux

 1. 準備C語言程序,保存為add.c

#include stdio.h>
 
int add_int(int, int);
float add_float(float, float);
 
int add_int(int num1, int num2)
{
    return num1 + num2;
}
 
float add_float(float num1, float num2)
{
    return num1 + num2;
}

 2. 編譯成so庫

 Ubuntu下執行:gcc -shared -Wl,-soname,adder -o adder.so -fPIC add.c

 3. 準備python代碼,保存為python-c.py

import ctypes
 
#load the shared object file
adder = ctypes.cdll.LoadLibrary('./adder.so')
 
#Find sum of integers
res_int = adder.add_int(4,5)
print("4 + 5 = " + str(res_int))
 
#Find sum of floats
a = ctypes.c_float(5.5)
b = ctypes.c_float(4.1)
 
add_float = adder.add_float
add_float.restype = ctypes.c_float
 
print("5.5 + 4.1 = " + str(add_float(a, b)))

 4. 測試

 執行:python3 python-c.py

 結果如下:

 4 + 5 = 9

 5.5 + 4.1 = 9.600000381469727

 5. 說明

 在Python文件中,一開始先導入ctypes模塊,然后使用cdll.LoadLibrary
 函數來加載我們創建的庫文件。這樣我們就可以通過變量adder來使用C類庫中的函數了。當adder.add_int()被調用時,內部將發起一個對C函數add_int的調用。ctypes接口允許我們在調用C函數時使用原生Python中默認的字符串型和整型。

 而對于其他類似布爾型和浮點型這樣的類型,必須要使用正確的ctype類型才可以。如向adder.add_float()函數傳參時, 我們要先將Python中的十進制值轉化為c_float類型,然后才能傳送給C函數。這種方法雖然簡單,清晰,但是卻很受限。例如,并不能在C中對對象進行操作。

 二、windows

 1. 準備C語言程序,保存為add.c

 同上

 2. 編譯成dll庫

 cygwin下執行:gcc -shared -Wl,-soname,adder -o adder.dll -fPIC add.c

 3. 準備python代碼,保存為python-c.py

import ctypes
 
#load the shared object file
adder = ctypes.cdll.LoadLibrary('.\\adder.dll')
 
#Find sum of integers
res_int = adder.add_int(4,5)
print("4 + 5 = " + str(res_int))
 
#Find sum of floats
a = ctypes.c_float(5.5)
b = ctypes.c_float(4.1)
 
add_float = adder.add_float
add_float.restype = ctypes.c_float
 
print("5.5 + 4.1 = " + str(add_float(a, b)))

 4. 測試

 powershell下執行: .\python-c.py

 會出現以下錯誤:

 OSError: [WinError 126]

 原因:adder.dll本身依賴其它庫,需要將這些庫一起復制到當前目錄。

 cygwin下執行:ldd adder.dll

 提示依賴以下庫

 將這些庫copy到當前目錄,執行:cp xxx.dll .

 powershell下再次執行:.\python-c.py

 結果如下:

總結

到此這篇關于python3調用c語言代碼的文章就介紹到這了,更多相關python3調用c語言內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 給大家整理了19個pythonic的編程習慣(小結)
  • Python入門篇之編程習慣與特點
  • 符合語言習慣的 Python 優雅編程技巧【推薦】
  • 只用20行Python代碼實現屏幕錄制功能
  • Python一行代碼實現自動發郵件功能
  • 只需要100行Python代碼就可以實現的貪吃蛇小游戲
  • 利用Python計算圓周率π的實例代碼
  • 寫好Python代碼的幾條重要技巧
  • Python 線程池模塊之多線程操作代碼
  • python使用tkinter實現透明窗體上繪制隨機出現的小球(實例代碼)
  • Python代碼風格與編程習慣重要嗎?

標簽:黔西 四川 黑龍江 鷹潭 惠州 常德 上海 益陽

巨人網絡通訊聲明:本文標題《python3調用c語言代碼的全過程記錄》,本文關鍵詞  python3,調用,語言,代碼,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python3調用c語言代碼的全過程記錄》相關的同類信息!
  • 本頁收集關于python3調用c語言代碼的全過程記錄的相關信息資訊供網民參考!
  • 推薦文章
    欧美18性精品| 四虎影视库| 亚洲精品永久一区| 国产极品白嫩美女在线观看看| 天天色色网| 久久福利影视| 精品国产三级a| 国产91精品一区| 精品国产香蕉在线播出| 午夜在线亚洲| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本免费区| 国产麻豆精品视频| a级毛片免费全部播放| 日本免费乱人伦在线观看 | 在线观看导航| 青青青草影院| 天天做日日爱| 日日爽天天| 中文字幕97| 亚洲女人国产香蕉久久精品| 99热精品在线| 二级片在线观看| 青草国产在线观看| 99久久精品国产免费| 国产一区二区精品久| 韩国毛片免费大片| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 青草国产在线| 99久久精品费精品国产一区二区| 精品视频在线观看一区二区 | 国产精品免费精品自在线观看| 九九热国产视频| 成人影视在线观看| 二级片在线观看| 四虎精品在线观看| 四虎论坛| 免费国产在线视频| 免费国产在线观看| 日韩在线观看免费| 国产精品自拍在线观看| 亚洲天堂在线播放| 天堂网中文字幕| 免费国产在线视频| 久久精品人人做人人爽97| 四虎精品在线观看| 免费国产在线视频| 你懂的国产精品| 日韩一级黄色| 91麻豆精品国产片在线观看| 精品美女| 色综合久久久久综合体桃花网| 日韩一级黄色| 国产伦理精品| 青青青草影院 | 久久国产精品只做精品| 欧美国产日韩一区二区三区| 你懂的在线观看视频| 国产网站麻豆精品视频| 精品国产亚一区二区三区| 国产伦精品一区三区视频| 亚洲精品久久久中文字| 日本免费乱理伦片在线观看2018| 亚欧成人乱码一区二区| 日本在线www| 美女免费黄网站| 欧美激情一区二区三区在线播放| 欧美另类videosbestsex久久| 国产91精品露脸国语对白| 日韩专区一区| 成人高清免费| 日韩免费片| 亚洲第一页色| 青青久久网| 精品视频在线观看一区二区| 国产一区二区精品在线观看| 国产福利免费观看| 999精品视频在线| 在线观看成人网 | 精品在线免费播放| 精品久久久久久中文| 亚洲第一视频在线播放| 国产一区精品| 四虎影视库| 韩国毛片基地| 亚洲第一色在线| 国产网站在线| 免费毛片基地| 99久久视频| 亚洲精品中文一区不卡| 欧美激情一区二区三区视频| 四虎影视库| 精品视频在线看| 国产高清在线精品一区a| 国产韩国精品一区二区三区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩中文字幕在线亚洲一区| 香蕉视频久久| 国产91视频网| 欧美另类videosbestsex久久| 日日夜人人澡人人澡人人看免| a级黄色毛片免费播放视频| 亚洲 国产精品 日韩| 国产91精品一区二区| 日韩免费片| 久久精品免视看国产明星| 99久久精品国产片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久久精品人人做人人爽97| 美女被草网站| 亚洲精品久久久中文字| 亚洲精品久久玖玖玖玖| 国产视频久久久| 亚欧乱色一区二区三区| 国产伦理精品| 国产一区免费在线观看| 日韩一级黄色| 日本免费看视频| 国产91精品系列在线观看| 欧美1区| 欧美激情一区二区三区视频 | 亚洲女人国产香蕉久久精品| 午夜激情视频在线播放| 欧美另类videosbestsex视频| 四虎影视库| 久久国产一区二区| 999久久66久6只有精品| 国产福利免费视频| 麻豆污视频| 国产视频一区二区三区四区 | 国产不卡高清在线观看视频| 日韩专区亚洲综合久久| 国产一区免费在线观看| 你懂的福利视频| 四虎论坛| 免费毛片基地| 91麻豆爱豆果冻天美星空| 久久国产影院| 黄视频网站免费| 午夜欧美福利| 天天做日日爱| 欧美爱爱网| 黄视频网站免费| 国产伦精品一区三区视频| 国产极品精频在线观看| 亚欧成人乱码一区二区| 国产精品自拍亚洲| 欧美另类videosbestsex| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久久久久久网| 香蕉视频三级| 日本在线播放一区| 欧美激情一区二区三区在线| 国产网站免费视频| 青青青草影院 | 天天色成人| 日本免费看视频| 久久国产影院| 国产麻豆精品| 欧美日本二区| 一a一级片| 欧美爱色| 毛片成人永久免费视频| 青青久久精品| 日韩在线观看视频黄| 深夜做爰性大片中文| 美女免费精品视频在线观看| 精品久久久久久中文字幕一区 | 日韩一级黄色| 四虎久久影院| 精品久久久久久综合网| 日韩专区第一页| 久久久久久久久综合影视网| 国产伦久视频免费观看 视频| 国产国语对白一级毛片| 国产原创中文字幕| 一级毛片视频免费| 日本伦理片网站| 精品久久久久久中文字幕2017| 欧美大片一区| 免费的黄色小视频| 久久精品免视看国产明星| 色综合久久天天综线观看| 久久久久久久免费视频| 二级片在线观看| 九九精品在线| 国产a网| 九九免费高清在线观看视频| 青青久在线视频| 国产一区二区高清视频| 久久久久久久免费视频| 国产视频一区二区在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 成人免费观看视频| 香蕉视频一级| 国产欧美精品午夜在线播放| 国产91精品一区二区| 欧美激情一区二区三区视频 | 一级女性大黄生活片免费|