Cythonize为.c和.o文件生成两个单独的生成文件夹

问题描述

我的包裹的结构如下:

.
setup.py
setup.sh
neuralflow/
    c_get_gamma.pyx

我的目标是编译cython扩展,并将所有构建的文件放入Neuroflow文件夹中。

Setup.py:

from distutils.core import setup
from distutils.extension import Extension
import numpy as numpy
        
extensions = [Extension("c_get_gamma",["neuralflow/c_get_gamma.pyx"],include_dirs = [numpy.get_include(),"neuralflow/"])]

from Cython.Build import cythonize
extensions = cythonize(extensions,build_dir="neuralflow/build")


setup(
    ext_modules = extensions,packages=["neuralflow"],package_dir={'neuralflow': 'neuralflow'}
)

Setup.sh:

#!/bin/bash
python setup.py build_ext --build-lib neuralflow 

结果,我得到以下结构:

.
setup.py
setup.sh
build/
    temp.macosx-10.9-x86_64-3.7/
         neuralflow/
             build/
                 neuralflow/
                     c_get_gamma.o
neuralflow/
    c_get_gamma.pyx
    c_get_gamma.cpython-37m-darwin.so 
    build/
        neuralflow/
            c_get_gamma.c

我不明白为什么项目的根文件夹中有一个带有这种奇怪结构的build文件夹。我安装正确吗?

Python 3.7.6,Cython 0.29.15

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)