方法一:使用cython将py文件编译成so文件
- 环境准备
安装 cython,以及 gcc
wget https://bootstrap.pypa.io/get-pip.py
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 文件
- 脚本测试
import test
print test.test()
- 编译 so 文件
以下操作均在 /usr/lib/python2.7/site-packages/test 路径下执行
cython test.py
gcc -c -fPIC -I/usr/include/python2.7/ test.c
gcc -shared test.o -o test.so
- 验证
移除/usr/lib/python2.7/site-packages/test其他文件,只保留test.so,__init__.py 文件
from test import test
test()
方法一:使用 setup.py 编译 so
上面使用 gcc 将 py 编译成 so,下面直接使用 python 自带的setup.py 来编译 so
- 编写的 setup.py 文件位于 /usr/lib/python2.7/site-packages/test 内容如下:
from distutils.core import setup
from Cython.Build import cyhonize
setup(
ext_modules = cythonize("test.py")
)
# 保存后执行
setup.py build_ext --inplace
网友评论