亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > Python > 正文

python使用ctypes調(diào)用擴展模塊的實例方法

2024-09-09 19:03:40
字體:
供稿:網(wǎng)友

楔子

我們知道python的執(zhí)行效率不是很高,而且由于GIL的原因,導(dǎo)致python不能充分利用多核CPU。一般的解決方式是使用多進程,但是多進程開銷比較大,而且進程之間的通信也會比較麻煩。因此在解決效率問題上,我們會把那些比較耗時的模塊使用C或者C++編寫,然后編譯成動態(tài)鏈接庫,Windows上面是dll,linux上面則是so,編譯好之后,交給python去調(diào)用。而且通過擴展模塊的方式還可以解決python的GIL的問題,因此如果想要利用多核,我們?nèi)匀豢梢酝ㄟ^擴展模塊的方式。

python如何調(diào)用擴展模塊

python調(diào)用擴展模塊的一種比較簡單的方式就是使用ctypes這個庫,這個庫是python官方提供的,任何一個版本的python都可以使用,我們通過ctypes可以很輕松地調(diào)用擴展模塊。

演示

#include <stdio.h>void test(){  printf("hello world/n");}

我們定義了一個很簡單的函數(shù),下面我們就可以將其編譯成擴展模塊了。在Windows是dll,linux上是so,編譯的命令是一樣的。我這里以Windows 為例,記得在Windows上要安裝MinGW,或者安裝VsCode,我這里使用的是MinGW,因為VsCode太大了。

gcc -o dll文件或者so文件 -shared c或者c++源文件

我這里的C源文件叫做1.c,我們編譯成mmp.dll吧,所以命令就可以這么寫:gcc -o mmp.dll -shared 1.c

下面就可以使用python去調(diào)用了。

import ctypes# 使用ctypes很簡單,直接import進來,然后使用ctypes.CDLL這個類來加載動態(tài)模塊# 如果在Windows上還可以使用ctypes.WinDLL。# 因為看ctypes源碼的話,會發(fā)現(xiàn)WinDLL也是一個類并且繼承自CDLL# 所以在linux上使用ctypes.CDLL,# 而在Windows上既可以使用WinDLL、也可以使用CDLL加載動態(tài)模塊lib = ctypes.CDLL("./mmp.dll") # 加載之后就得到了擴展模塊# 我們可以直接通過.的方式去調(diào)用里面的函數(shù)了,會發(fā)現(xiàn)成功打印lib.test() # hello world# 但是為了確定是否存在這個函數(shù),我們一般會使用反射去獲取# 因為如果函數(shù)不存在通過.的方式調(diào)用會拋異常的func = getattr(lib, "test", None)if func:  print(func) # <_FuncPtr object at 0x0000029F75F315F0>  func() # hello world# 不存在test_xx這個函數(shù),所以得到的結(jié)果為Nonefunc1 = getattr(lib, "test_xx", None)print(func1) # None

所以使用ctypes去調(diào)用擴展模塊非常方便

1.通過ctypes.CDLL("dll或者so的路徑"),如果是Windows還可以使用ctypes.WinDLL("dll路徑")。另外這兩種加載方式分別等價于:ctypes.CDLL("dll或者so的路徑") == ctypes.cdll.LoadLibrary("dll或者so的路徑"),ctypes.WinDLL("dll路徑") == ctypes.windll.LoadLibrary("dll路徑")。但是注意的是:linux上只能使用ctypes.CDLL和ctypes.cdll.LoadLibrary,而Windows上ctypes.CDLL、ctypes.cdll.LoadLibrary、ctypes.WinDLL、ctypes.windll.LoadLibrary都可以使用。但是一般我們都使用ctypes.CDLL即可,另外注意的是:dll或者so文件的路徑最好是絕對路徑,即便不是也要表明層級,比如我們這里的py文件和dll文件是在同一個目錄下,但是我們加載的時候不可以寫mmp.dll,這樣會報錯找不到,要寫成./mmp.dll。

2.加載動態(tài)模塊之后會返回一個對象,我們上面起名為lib,這個lib就是得到的擴展模塊了。

3.然后可以直接通過lib調(diào)用里面的函數(shù),但是一般我們會使用反射的方式來獲取,因為不知道函數(shù)到底存不存在,如果不存在直接調(diào)用會拋出異常,如果存在這個函數(shù)我們才會執(zhí)行。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
丰满爆乳一区二区三区| 私人影视中文字幕| 国产自产v一区二区三区c| 99视频在线观看视频| 久久夜色精品国产| 同性视频网站免费男| 欧美成人全部免费| 国产成人精品无码播放| 国产成人在线免费| 中文字幕综合一区| 91香蕉视频导航| 91av在线免费| av女片在线| 国产九九在线视频| 99精品老司机免费视频| 国产va在线| 久久视频国产精品免费视频在线| 91福利国产精品| 久久综合中文字幕| 黄色一级在线视频| 欧美激情视频在线观看| 91麻豆精品国产自产在线观看一区| 日韩av网站在线播放| eeuss中文| 色婷婷精品大视频在线蜜桃视频| 欧美成ee人免费视频| 久草视频国产在线| 日韩啪啪电影网| 国产三级午夜理伦三级| av在线二区| 色婷婷亚洲综合| 成人高清dvd| 在线激情影院一区| 开心婷婷激情五月| 国产精品国产亚洲伊人久久| 欧美1级2级| 一本久久精品| 91精品综合| 亚洲成人激情社区| 欧美成年黄网站色视频| 中文产幕区在线观看| 8x8x成人免费视频| 在线观看免费视频a| 日本黄色免费片| 天天色天天操天天做| 日本午夜小视频| 久久精品国产亚洲5555| 四虎5151久久欧美毛片| 国产成人精品日本亚洲11| 欧美精品导航| 中文字幕电影av| 日韩一级片一区二区| 99热99在线| 欧美伊人久久久久久午夜久久久久| h视频免费看| 欧美日韩在线一区二区| 九九热在线精品视频| 在线观看免费av网| 久久国产综合视频| 一本色道久久88精品综合| 免费观看91视频大全| 在线播放亚洲激情| 亚洲中文字幕无码一区二区三区| 视频一区二区中文字幕| 91精品在线观看国产| 日本女优在线视频一区二区| 国精产品一区一区三区视频| 久久久久久久网站| 亚洲欧美在线视频观看| 岛国视频免费在线观看| 国产激情一区二区三区四区| 亚洲国产日韩欧美在线动漫| 久章草在线视频| 久久精品国产77777蜜臀| 国产精品视频一区二区三区麻豆| 91麻豆精品国产自产在线观看一区| 国产精品久久久久久久久久久免费看| 成人免费公开视频| 成人一区二区不卡免费| 欧美天堂亚洲电影院在线播放| 欧美另类videosbestsex日本| 久久艹免费视频| 国内在线精品| 国产黄色小视频在线| 日本在线小视频| 亚洲综合网在线| 日本午夜精品视频在线观看| 久久久久久国产三级电影| 美女精品久久| 午夜精品电影在线观看| 国产精品二区一区二区aⅴ污介绍| 奇米影视888狠狠狠| 成 人片 黄 色 大 片| 96精品视频在线| 国产日本精品视频| 欧美18免费视频| 亚洲婷婷丁香| 婷婷中文字幕在线观看| 91高清视频在线免费观看| 午夜精品久久久99热福利| 两性午夜免费视频| 在线免费观看羞羞视频一区二区| 亚洲国产尤物| 国产精品国模大尺度视频| 波多野结衣乳巨码无在线| 免费一级淫片aaa片毛片a级| 国产一区二区三区精品久久久| 高清成人免费视频| 久久99精品久久久久久| 国产日产欧美一区二区三区| 日韩色在线观看| 国产又大又粗又长| 激情五月六月婷婷| 国产乱子伦三级在线播放| 三区四区在线视频| 麻豆国产在线播放| 欧洲杯足球赛直播| 国产精品毛片无码| 亚洲精品久久久久久久久| 456成人影院在线观看| 国内精品久久久久国产盗摄免费观看完整版| 国产精品一区二区精品| 国产精品日韩欧美一区二区三区| 一区二区三区在线免费播放| 神马久久久久久久久久久| 国色天香2019中文字幕在线观看| 99久久综合精品| 国产在线www| 日韩天天综合| 中文字幕在线视频网站| 国产精品视频你懂的| 日韩一级大片| 蜜桃成人在线视频| 久久精品一区二区三区中文字幕| 性猛交富婆╳xxx乱大交一| 伊大人久久香线焦宗合一75大| 亚洲综合图片网| 影音先锋男人的网站| 1区不卡电影| 国产精品亚洲аv天堂网| 中文字幕一区二区三区四| 中文字幕avav| 在线观看日韩www视频免费| 疯狂揉花蒂控制高潮h| 在线精品国产| 国产欧美婷婷中文| 亚洲成在人线免费视频| 亚洲一区二区三区三| 日本护士做爰视频| 三级影片在线观看欧美日韩一区二区| 中文字幕在线一二| 亚洲高清资源综合久久精品| 不卡中文字幕av| 日本久久高清视频| 国产精品久久人| 中文在线资源观看视频网站免费不卡| 欧美在线观看在线观看| 欧美在线观看你懂的| 国产高清中文字幕在线| 亚洲av鲁丝一区二区三区| 一区二区三区在线| 国产精品一区视频网站| 羞羞色午夜精品一区二区三区| 手机看片一级片| 综合网在线视频| 一本久久a久久精品亚洲| 狠狠色2019综合网| 欧美韩国日本精品一区二区三区| 欧美77777免费视频| 欧美日韩电影在线播放| 老司机久久精品| 日韩黄色小视频| 日韩 国产 一区| 成人av动漫在线| 色视频www在线播放国产人成| 少妇高潮爽到全身痉挛抽搐| 97免费视频在线| 亚洲精品自产拍在线观看| 国产无遮挡又黄又爽在线观看| 偷窥自拍亚洲色图| 亚洲影院色在线观看免费| 日韩激情av在线| 性欧美极品xxxx欧美一区二区| 一区二区欧美在线观看| 91精品国产一区二区三区香蕉| 久本草在线中文字幕亚洲| 日韩中文字幕在线视频播放| 日韩视频精品在线| 亚洲韩国日本中文字幕| 欧美第一页在线| 日韩极品少妇| 亚洲国产欧美一区二区三区久久| 免费在线你懂的| 黄色国产精品一区二区三区| 国产盗摄精品一区二区酒店| av天堂一区二区| 欧美精品一区二区在线观看| 国精品无码一区二区三区| 天堂av在线网站| 亚洲第一精品久久忘忧草社区| 亚洲免费观看高清| 亚洲精品**不卡在线播he| 欧美视频一区二区在线观看| 先锋影视中文字幕| 日韩福利电影在线观看| 国产日韩欧美在线播放| 国产在视频一区二区三区吞精| 免费又黄又爽又猛大片午夜| 国产成人在线影院| 色天堂在线视频| 国产91一区| 国产精品免费一区| 神马精品久久| 国产无遮挡aaa片爽爽| 精品一区二区三区在线观看国产| 伊人福利在线| 国产精品xx| 欧美一区2区视频在线观看| 亚洲精品自拍第一页| 青青在线精品| zzijzzij亚洲日本成熟少妇| 日韩高清在线观看| 成人在线免费av| 亚洲视频久久久| 国产欧美一区二区三区在线老狼| 亚洲免费视频观看| 日韩国产精品久久久久久亚洲| 成人资源在线播放| 一区二区三区视频在线免费观看| 亚洲乱码国产乱码精品精软件| 性生活三级视频| 亚洲色图制服丝袜| 人妻精品无码一区二区三区| 亚洲日本一区二区三区在线| 2020色愉拍亚洲偷自拍| 美女av一区二区| 福利社在线免费视频| 91视频这里只有精品| 蜜桃视频在线观看免费视频| 一区二区三区导航| 欧美精品黑人猛交高潮| 国产喷水吹潮视频www| 午夜精品免费| 精品在线视频观看| 国产一区二区三区在线观看精品| 欧美第一页在线观看| 蜜桃视频网站在线观看| 日本三级电影网站| 国产精品一区二区三区www| 欧美高清视频一二三区| 国产精品一区二区免费| 国产美女精品视频国产| 欧美三级午夜理伦三级老人| 色偷偷www8888| 自拍一级黄色片| 亚洲欧美日韩视频一区| 亚洲天堂手机版| 在线观看免费看片| av资源在线播放| 黄www在线观看| 久草热8精品视频在线观看| 国精产品一区二区| 国产精品麻豆网站| 欧美精品九九| 色哟哟精品视频| 91精品少妇一区二区三区蜜桃臀| 亚洲午夜久久久久久久久红桃| 久久99视频| 亚洲av成人精品一区二区三区| 亚州男人的天堂| 亚洲一区二区成人在线观看| 亚洲资源中文字幕| 免费在线a视频| 亚洲男人的天堂在线aⅴ视频| 91精品国产色综合久久不卡粉嫩| 天堂社区 天堂综合网 天堂资源最新版| 国产欧美日韩精品丝袜高跟鞋| 丁香桃色午夜亚洲一区二区三区| 欧美四级剧情无删版影片| 欧美热在线视频精品999| 久久精品国产亚洲av麻豆| 2欧美一区二区三区在线观看视频| 成人免费观看毛片| 日韩西西人体444www| 国产高清在线一区| 国产51人人成人人人人爽色哟哟| 国内精品免费视频精选在线观看| 久久精品国产亚洲av麻豆| 色欲AV无码精品一区二区久久| 欧美套图亚洲一区| 久久久高清视频| 国产一区二区不卡视频| 日韩精品久久久久久久| 妺妺窝人体色www看人体| 男男做爰猛烈叫床爽爽小说| 99精品全国免费观看| 国产精品美女久久久久久久久| 91精品国产入口在线| gogo高清在线播放免费| 全免费a级毛片| 精品福利免费观看| 午夜在线免费视频| 91精品蜜臀一区二区三区在线| 日本aⅴ在线观看| 中文字幕欧美区| 日韩一区二区中文字幕| 国产日产一区二区| 不卡日韩av| 精品国产丝袜高跟鞋| 日韩精品一级中文字幕精品视频免费观看| 国产精品日韩无码| av中文一区| 国产一区不卡视频| 欧美家庭影院| 欧美a∨亚洲欧美亚洲| 另类视频欧美| 中文成人在线| 久热精品视频在线播放| 福利电影一区二区三区| 精品日韩欧美一区| 欧美精品一区二区三区久久久| 日韩欧美资源站| 久久五月天综合| 高清欧美性猛交xxxx| www.黄色av| 有码一区二区三区| 欧美成人午夜免费视在线看片| 亚洲综合网站久久久|