windows下将pyx文件编译成pyd文件

想将目标检测常用的模块bbox.pyc编译成pyd文件

第一步:写cython编译文件build_pyd.py

import sys
import numpy as np
A=sys.path.insert(0, "..")
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
from Cython.Distutils import build_ext

ext_module = Extension(
                        "bbox",
            ["bbox.pyx"],
            extra_compile_args=["/openmp"],
            extra_link_args=["/openmp"],
            )

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [ext_module],
    #注意这一句一定要有,不然只编译成C代码,无法编译成pyd文件
    include_dirs=[np.get_include()]
)

第二步:执行python build_pyd.py build_ext --inplace 或者 python build_pyd.py build

注意,py脚本里需要加

import numpy as np

include_dirs=[np.get_include()

不然会导致bbox.c文件中错误:fatal error: numpy/arrayobject.h没有那个文件或目录

参考:

https://blog.csdn.net/DSCjxgzzd/article/details/89071040

https://blog.csdn.net/wuzuyu365/article/details/52430657

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章