1)生成 .so
库文件,使用脚本 py2sp.py
,编译目标 python
文件成 .so
py2so
python
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", # 包版本号
ext_modules = cpy, # 扩展模块
author = 'ohuo', # 作者
author_email = 'aha', # 作者邮箱
)
if __name__ == '__main__':
file = 'hello.py'
py2so(file)
2)执行编译脚本
python3 py2so.py build_ext --inplace
3)使用 .so
中打包的方法,import_my_so.py
python
import hello
hello.main()
输出:
aha, hello
·hello.py·
python
def main():
print("aha, hello")