一、環境準備
安裝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...