我有一个包含多个 .pyx 文件的Cython项目。为了分发我的项目,我想按照推荐的in the Cython documentation提供我生成的 .c 文件,以尽量减少不同Cython版本的问题。
我目前的工作流程是使用以下方式构建项目:
me@machine$ python setup.py build_ext --inplace
此cythonizes(即使用Cython将 .pyx 文件转换为 .c / .cpp 文件)全部 .pyx 文件,然后编译它们。 对于一个版本,我不需要编译的( .so )文件,所以我基本上忽略它们。问题是,我在无用的编译上浪费了很多时间。
有没有办法使用setup.py
对文件夹中的所有 .pyx 文件进行cython化,而不编译它们?
$ cython my_file.pyx
我有大约20个 .pyx 文件有不同的compiler directives。在命令行上为每个文件调用cython
比等待它编译要慢。
另一方面,创建一个shell脚本来对它们进行cython化会给我留下第二个需要保持最新的编译器指令列表。我宁愿不这样做,以便尽可能减少我可能的失败点。
答案 0 :(得分:1)
首先在setup.py" setup(...)"中删除创建C文件而不编译它们的方法。并将其替换为" cythonize(" * .pyx")"部分。然后运行:
me@machine$ python setup.py