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

