当前位置 : 主页 > 编程语言 > python >

python打包成so文件

来源:互联网 收集:自由互联 发布时间:2021-06-25
wget https://bootstrap.pypa.io/get- pip.pypython get - pip.pypip install cython .编写setput.py文件: setup.py文件内容如下: from distutils.core import setup from distutils.extension import Extension from Cython.Build import cyth
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install cython

.编写setput.py文件:
    setup.py文件内容如下:

from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize

extensions = [Extension("ln_facedetector",
                        ["ln_facedetector.py"],
                        include_dirs=["/usr/local/lib"],
                        libraries=["/usr/local/lib/python3.6/site-packages/cv2/cv2.cpython-36m-x86_64-linux-gnu.so",
                                   "/usr/local/lib/python3.6/site-packages/dlib.cpython-36m-x86_64-linux-gnu.so"],
                        library_dirs=["/usr/local/lib/python3.6/site-packages/cv2","/usr/local/lib/python3.6/site-packages"])]

setup(ext_modules=cythonize(extensions))

整个工程中包括多少个py文件,就写多少个Extension,并把需要调用的其他库路径在include_dirs、libraries、library_dirs中进行设置。

编译so文件,执行以下命令:

    python setup.py build_ext

调用so文件:

import sys
sys.path.append(/vloum/faceSO/ln_facedetector) #加载so文件(入参为so文件路径)
from ln_facedetector import faceutil #import so文件中的相关类
arr = faceutil.detection("/vloum/faceSO/a.jpg")
print(arr)
上一篇:python安装scipy
下一篇:day_16
网友评论