想將目標檢測常用的模塊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沒有那個文件或目錄
參考: