使用setup.py

时间:2016-01-04 11:18:12

标签: python cython setuptools setup.py software-distribution

我有一个包含多个 .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化会给我留下第二个需要保持最新的编译器指令列表。我宁愿不这样做,以便尽可能减少我可能的失败点。

1 个答案:

答案 0 :(得分:1)

首先在setup.py" setup(...)"中删除创建C文件而不编译它们的方法。并将其替换为" cythonize(" * .pyx")"部分。然后运行:

me@machine$ python setup.py