婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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語言代碼的全過程記錄的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人在线直播| yourporn久久国产精品| 欧美美女网站色| 在线影视一区二区三区| 94-欧美-setu| 欧美精品自拍偷拍动漫精品| 色欧美片视频在线观看在线视频| 一本大道久久a久久精品综合| 91一区二区在线| 欧美日韩国产一区二区三区地区| 91精品啪在线观看国产60岁| 欧美一级精品在线| 久久久天堂av| 亚洲免费观看高清完整版在线观看| 一区二区三区中文字幕电影 | 欧美视频一区二区三区| 国产成人免费视频网站 | 国产丶欧美丶日本不卡视频| 国产91色综合久久免费分享| 国产一区二区毛片| 成人深夜福利app| 在线成人高清不卡| 国产欧美日韩亚州综合| 中文字幕日本乱码精品影院| 亚洲女同女同女同女同女同69| 亚洲免费av在线| 成人小视频免费观看| 欧美在线高清视频| 久久久久久久久久美女| 亚洲免费av高清| 日韩在线一二三区| 色嗨嗨av一区二区三区| 91精品国产乱| 国产精品久久久久影院| 亚洲国产一区视频| 狠狠狠色丁香婷婷综合激情 | 性欧美疯狂xxxxbbbb| 成人免费视频播放| 欧美色综合久久| 国产精品久久久久aaaa| 人人超碰91尤物精品国产| 国模少妇一区二区三区| 精品国免费一区二区三区| 国产一区二区调教| 国产三区在线成人av| 成人一区二区三区在线观看 | 国产精品久久久久久久久免费樱桃| 国产精品一区二区久久不卡| 欧美激情资源网| 欧美色男人天堂| 国产精品青草综合久久久久99| 国产一区二区不卡| 一区二区三区色| 久久久国产综合精品女国产盗摄| 国产不卡视频在线播放| 亚洲一区二区在线免费看| 精品国产三级a在线观看| 99精品欧美一区二区三区小说| 亚洲一区二区三区四区五区中文 | 国产精品乱码一区二三区小蝌蚪| 色狠狠av一区二区三区| 国产精品自拍一区| 日韩成人一区二区三区在线观看| 2024国产精品| 日韩写真欧美这视频| 99久免费精品视频在线观看| 亚洲成人你懂的| 亚洲欧美视频在线观看视频| 亚洲国产精品国自产拍av| 精品久久久久久久一区二区蜜臀| 欧美精品高清视频| 精品视频在线视频| 欧美色国产精品| 欧美午夜一区二区| 亚洲精品一区在线观看| 7777精品久久久大香线蕉| 欧美视频在线一区二区三区| 欧美在线观看一二区| 欧美精品日韩精品| 日韩一区二区免费在线观看| 欧美一区二区三区免费视频| 日韩美女视频在线| 国产欧美1区2区3区| 国产精品蜜臀在线观看| 久久婷婷一区二区三区| 国产视频一区在线观看| 欧美精选一区二区| www激情久久| 一级女性全黄久久生活片免费| 亚洲狠狠爱一区二区三区| 美女高潮久久久| 亚洲一线二线三线视频| 亚洲欧美日韩国产综合在线| 国产精品成人在线观看| 欧美一区二区三区男人的天堂| 丰满白嫩尤物一区二区| 久久精品国产99| 91亚洲男人天堂| 欧美精品一区二区高清在线观看| 国产精品三级电影| 美女视频黄免费的久久 | 一区二区三区 在线观看视频| 美女性感视频久久| 在线观看日韩av先锋影音电影院| 欧美一区二区在线看| 亚洲免费视频中文字幕| 国产精品一二一区| 91精品一区二区三区久久久久久| 亚洲视频香蕉人妖| 日韩av一区二区三区| 精品在线播放免费| 欧美视频在线播放| 日韩欧美国产高清| 亚洲网友自拍偷拍| 国产宾馆实践打屁股91| 日韩午夜在线影院| 蜜臀av一区二区| 久久久精品免费免费| 亚洲狠狠丁香婷婷综合久久久| 国产成人av电影| 国产欧美日韩精品在线| 国产成人精品免费一区二区| 9色porny自拍视频一区二区| 久久夜色精品国产噜噜av| 另类的小说在线视频另类成人小视频在线| 久久精品男人天堂av| 偷拍日韩校园综合在线| 欧美乱妇一区二区三区不卡视频| 国产视频亚洲色图| 日本视频一区二区| 2017欧美狠狠色| 国产精品1024| 亚洲欧美激情小说另类| 91精品国产综合久久久久久漫画| 久久国内精品自在自线400部| 欧美成人在线直播| 日本高清免费不卡视频| 天使萌一区二区三区免费观看| 欧美二区在线观看| 国产成人午夜精品5599| 一区二区三区国产精品| 久久天天做天天爱综合色| 九九视频精品免费| 久久久久国产精品麻豆ai换脸| 国产精品亚洲综合一区在线观看| 亚洲天堂成人网| 久久精品在线免费观看| 精品视频色一区| 欧美午夜精品电影| av激情成人网| 国产成人午夜高潮毛片| 日本不卡1234视频| 国产欧美一区视频| 日本精品一级二级| 国产精品影视天天线| 久久99精品一区二区三区三区| 亚洲午夜一区二区三区| 一区二区三区精品| 亚洲va欧美va国产va天堂影院| 国产免费久久精品| 久久久www免费人成精品| 精品国产乱码久久久久久久 | 色综合色综合色综合| 国产寡妇亲子伦一区二区| 国产经典欧美精品| 成人午夜免费电影| 91麻豆免费在线观看| 波多野结衣亚洲| 欧美视频在线一区二区三区| 欧美日韩dvd在线观看| 精品国产伦一区二区三区观看方式 | 欧美一区二区三区视频在线 | 国产做a爰片久久毛片| 国产高清不卡二三区| 国产精品主播直播| 成人18精品视频| 欧美一区二区高清| 最新中文字幕一区二区三区| 午夜欧美在线一二页| 久草中文综合在线| 欧美视频在线观看一区| 中文av一区二区| 国产一区二区福利| 欧美日韩高清不卡| 亚洲欧美日韩一区| 99久久精品久久久久久清纯| 日韩精品一区二区三区中文精品| 一区二区国产盗摄色噜噜| 国产成人av电影| 日韩欧美一区在线| 香蕉加勒比综合久久| 欧美在线一二三| 国产精品成人在线观看| 久久国产精品免费| 日韩一区二区麻豆国产| 亚洲尤物在线视频观看| 91免费在线看| 欧美激情资源网| 粉嫩一区二区三区性色av| www激情久久|