1、首先,pyx文件需要安装Cython,这里先进入自己的虚拟环境,用conda安装Cython
conda install Cython
2、需要用到pyx的地方是mattnet中的mask.py 文件,里面 import _mask.pyx 文件,需要先在mask的目录下建立setup文件,按照这里面setup建立方式:(参考 setup文件 ,)
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("_mask.pyx")
)
但是会出现以下问题,其实就是找不到numpy路径:
bbox.c:626:31: fatal error: numpy/arrayobject.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
3、这里需要修改setup文件,改成以下格式,相当于包含了numpy路径。 (参考: setup文件建立)
from distutils.core import setup
from Cython.Build import cythonize
import numpy as np
setup(
ext_modules = cythonize("_mask.pyx"),
include_dirs = [np.get_include()]
)
4、cd进入externel目录后,运行:
python setup.py build_ext --inplace
出现以下错误:
5、本来提示不存在的文件maskApi.c其实是存在的,所以其实是cd目录错了,应该cd进入上一级目录,因为external下没有external/的目录,cd进入external的上级refer目录,重新运行:
python setup.py build_ext --inplace
6、大功告成。困扰我一周的bug终于解决了,竟然体会到当程序媛的乐趣了...