默认情况下,distutils.core中的安装程序将cmdclass设置为build_ext,编译当前工作目录中的cpp或c文件。有没有办法确定生成的c代码被写到哪里?否则,存储库中会散落生成的代码。
例如,此文件setup.py会将文件example.c写入当前工作目录:
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("example.pyx"))
Tags:
你的setup.py很好。
要将其构建到不同的位置,请按以下方式调用python:
我使用以下生成规则自动执行此操作:
您可以将选项
build_dir="directory name"
传递给Cythonize
上面的代码将把生成的c文件放在“build”目录中(这是有意义的,因为在默认情况下,distutils在构建时放置临时对象文件等)。
我最初的答案是
working
,而不是build_dir
。感谢@ArthurTacca指出这似乎不再是正确的。初始化扩展后,可以将参数设置为在temp目录中创建c。
相关问题 更多 >
编程相关推荐