python打包成 .so的實(shí)現(xiàn)步驟
為什么要將python打包成so文件
Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,具有豐富和強(qiáng)大的庫(kù),使用其開(kāi)發(fā)產(chǎn)品快速高效。python的解釋特性是將py編譯為獨(dú)有的二進(jìn)制編碼pyc文件,然后對(duì)pyc中的指令進(jìn)行解釋執(zhí)行,但是pyc的反編譯卻非常簡(jiǎn)單,可直接反編譯為源碼,當(dāng)需要將產(chǎn)品發(fā)布到外部環(huán)境的時(shí)候,源碼的保護(hù)尤為重要.因此需要將python文件打成so文件的目的就是為了保護(hù)源碼。
1)生成 .so
庫(kù)文件,使用腳本 py2sp.py
,編譯目標(biāo) python
文件成 .so
py2so
import Cython.build import distutils.core def py2so(file): cpy Cython.Build.cythonize(file) # 返回 distuls.extension.Extension 對(duì)象列表 distutils.core.setup( name = 'python_to_so', # 包名稱(chēng) version = "1.0", # 包版本號(hào) ext_modules = cpy, # 擴(kuò)展模塊 author = 'ohuo', # 作者 author_email = 'aha', # 作者郵箱 ) if __name__ == '__main__': file = 'hello.py' py2so(file)
2)執(zhí)行編譯腳本
python3 py2so.py build_ext --inplace
3)使用 .so
中打包的方法,import_my_so.py
import hello hello.main()
輸出:
aha, hello
·hello.py·
def main(): print("aha, hello")
到此這篇關(guān)于python打包成 .so的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)python打包成 .so內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談pyqt5中信號(hào)與槽的認(rèn)識(shí)
這篇文章主要介紹了淺談pyqt5中信號(hào)與槽的認(rèn)識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python中opencv與PIL圖片讀取保存及相互轉(zhuǎn)化方式
這篇文章主要介紹了python中opencv與PIL圖片讀取保存及相互轉(zhuǎn)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09使用pandas讀取表格數(shù)據(jù)并進(jìn)行單行數(shù)據(jù)拼接的詳細(xì)教程
這篇文章主要介紹了使用pandas讀取表格數(shù)據(jù)并進(jìn)行單行數(shù)據(jù)拼接的詳細(xì)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Python實(shí)現(xiàn)處理Excel數(shù)據(jù)并生成只讀模式
這篇文章主要為大家詳細(xì)介紹了如何使用 Python 處理 Excel 數(shù)據(jù),并生成只讀模式的 Excel 文檔,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考下2023-11-11基于python調(diào)用jenkins-cli實(shí)現(xiàn)快速發(fā)布
這篇文章主要介紹了基于python調(diào)用jenkins-cli實(shí)現(xiàn)快速發(fā)布,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08詳解關(guān)于Django中ORM數(shù)據(jù)庫(kù)遷移的配置
這篇文章主要介紹了詳解關(guān)于Django中ORM數(shù)據(jù)庫(kù)遷移的配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python創(chuàng)建生成器以及訪問(wèn)的方法詳解
這篇文章主要介紹了python創(chuàng)建生成器以及訪問(wèn)的方法詳解,與列表一次性地將數(shù)據(jù)全都加載到內(nèi)存不同的是,生成器使用推斷加載數(shù)據(jù),每次只推斷出一個(gè)對(duì)象,在數(shù)據(jù)量比較大時(shí),可以節(jié)省內(nèi)存,需要的朋友可以參考下2023-11-11