python脚本打包成so或pyd文件

众所周知,python是个解释性语言。如果你不想把代码展示给他人,那就将其编译成win下的.pyd库文件,或者linux下的.so库文件

Windows下的 python 生成 .pyd

假设你现在有个 test.py

# test.py
def add(a, b):
    return a+b

现在你想把这个test.py编译成pyd文件,像下面新建一个setup.py

# setup.py
from distutils.core import setup
from Cython.Build import cythonize

setup(name='test', ext_modules=cythonize('test.py'))
python setup.py build

该文件夹下会生成一个一个build文件夹,build里边有一个.pyd文件。把pyd文件拷贝到当前文件夹路径(个人习惯),然后按照如下方式调用:

from test import add

if __name__ == '__main__':
    a, b = 1, 1
    print(add(a, b))

或者使用python setup.py build_ext --inplace进行编译,然后.pyd文件会直接生成在当前文件夹,然后像上面调用的方式调用。

Linux python to .so

与win下生成.pyd文件相似,同样以test.py为例,建立setup.py 文件。

# setup.py
from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(['test.py']))
python3 setup.py build_ext --inplace

调用 .so file

import ctypes

ll = ctypes.cdll.LoadLibrary
demo = ll("test.so")

Linux C++ 生成 .so

gcc -shared -f PIC test.c -o test.so
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值