在Python中,可以使用Cython或ctypes等工具來(lái)將Python代碼封裝為動(dòng)態(tài)鏈接庫(kù)(DLL)。
使用Cython封裝為動(dòng)態(tài)鏈接庫(kù):
pip install cython
安裝Cython。.pyx
文件,編寫(xiě)需要封裝的Python代碼。setup.py
文件,用于構(gòu)建和編譯Cython代碼。python setup.py build_ext --inplace
編譯Cython代碼,并生成動(dòng)態(tài)鏈接庫(kù)文件。使用ctypes封裝為動(dòng)態(tài)鏈接庫(kù):
.py
文件,然后使用ctypes.util
模塊中的find_library
函數(shù)來(lái)查找并加載動(dòng)態(tài)鏈接庫(kù)。ctypes.cdll.LoadLibrary
函數(shù)加載動(dòng)態(tài)鏈接庫(kù),然后使用加載的庫(kù)進(jìn)行函數(shù)調(diào)用。下面是一個(gè)使用Cython封裝為動(dòng)態(tài)鏈接庫(kù)的示例:
.pyx
文件(例如example.pyx
),編寫(xiě)需要封裝的Python代碼:def add(a, b):
return a + b
setup.py
文件,用于構(gòu)建和編譯Cython代碼:from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize("example.pyx")
)
python setup.py build_ext --inplace
編譯Cython代碼,并生成動(dòng)態(tài)鏈接庫(kù)文件。現(xiàn)在,你可以在其他的Python程序中加載并調(diào)用該動(dòng)態(tài)鏈接庫(kù)了:
import example
result = example.add(3, 4)
print(result) # 輸出: 7
這樣,你就成功將Python代碼封裝為動(dòng)態(tài)鏈接庫(kù),并可以在其他的Python程序中使用了。