使用cython將py檔案編譯成so檔案

2021-08-07 14:03:56 字數 1195 閱讀 8333

一、環境準備

安裝cython,以及gcc編譯環境

wget

python get-pip.py

pip install cython

yum install -y gcc python-devel

二、編寫測試指令碼

test.py,內容如下

import os

def test():

print  os.path.realpath('.')

三、將其拷貝到python系統路徑

/usr/lib/python2.7/site-packages/test

在test目錄下建立__init__.py, 與 test.py 的檔案

test.py 上面內容如上所示

四、指令碼測試

python 

>>> import lyh.test

>>> lyh.test.test()

五、編譯so檔案

以下操作均在 /usr/lib/python2.7/site-packages/test 路徑下執行

1. cython test.py

2. gcc -c -fpic -i/usr/include/python2.7/ test.c

3. gcc -shared test.o -o test.so

六、驗證so檔案的可用性

1. 移除/usr/lib/python2.7/site-packages/test/test.py 檔案,只保留 test.so檔案

test

├── __init__.py

└── test.so

2. python

>>> import test.test

>>> test.test.test()

可以執行

驗證完成

七、使用setup.py 編譯so

1. 編寫setup.py檔案,位於/usr/lib/python2.7/site-packages/test,內容如下:

from distutils.core import setup

from cython.build import cythonize

setup(

ext_modules = cythonize("test.py")

)2.然後執行

setup.py build_ext --inplace

將py檔案編譯為pyc檔案

pyc檔案可以代替py檔案,只需要將pyc檔案更改為何py檔案同名,然後放在py檔案位置處即可。編譯 cd到專案目錄下執行下面命令將py檔案編譯成pyc檔案 此時生成的pyc檔案都在 pycache 目錄中 python3 m compileall 專案路徑 或 python3實現生成的pyc與源 ...

Python 將py檔案編譯成so檔案

1.安裝cython,以及gcc編譯環境 root localhost pip install cython 2.編寫測試指令碼 test.py def test print hello python def add a,b print a b return a b 1.編寫setup.py檔案,與...

使用cython把python編譯so

1.需求 為了保證線上 安全和效率,使用python編寫 pyc可直接反編譯,於是把重要 編譯so檔案 2.工作 pip install cython yum install y gcc python devel2.2 建立setup.py usr bin env python coding utf...