使用 setup.py Cythonize 但不编译 .pyx 文件
Cythonize but not compile .pyx files using setup.py
我有一个包含几个 .pyx 文件的 Cython 项目。为了分发我的项目,我想按照建议 in the Cython documentation 提供我生成的 .c 文件,以尽量减少不同 Cython 版本的问题。
我当前的工作流程是使用以下方法构建项目:
me@machine$ python setup.py build_ext --inplace
这个 cythonizes(即翻译 .pyx 文件到 .c / .cpp 文件使用 Cython) 所有 .pyx 文件,然后编译它们。
对于一个版本,我不需要编译的 (.so) 文件,所以我基本上忽略它们。问题是,我在无用的编译上浪费了很多时间。
有没有一种方法可以使用 setup.py
对文件夹中的所有 .pyx 文件进行 cythonize,而不用编译它们?
编辑:为什么不直接使用 $ cython my_file.pyx
我有大约 20 个 .pyx 个文件,它们具有不同的 compiler directives。在命令行上为每个文件调用 cython
比仅仅等待它编译要慢。
另一方面,创建一个 shell 脚本来对它们进行 cythonize 处理会给我留下第二份需要保持最新的编译器指令列表。我宁愿不这样做,以尽量减少可能的故障点。
创建 C 文件而不编译它们的一种方法是首先删除 setup.py "setup(...)" 行并只用 "cythonize("*.pyx")" 部分替换它。然后运行:
me@machine$ python setup.py
我有一个包含几个 .pyx 文件的 Cython 项目。为了分发我的项目,我想按照建议 in the Cython documentation 提供我生成的 .c 文件,以尽量减少不同 Cython 版本的问题。
我当前的工作流程是使用以下方法构建项目:
me@machine$ python setup.py build_ext --inplace
这个 cythonizes(即翻译 .pyx 文件到 .c / .cpp 文件使用 Cython) 所有 .pyx 文件,然后编译它们。 对于一个版本,我不需要编译的 (.so) 文件,所以我基本上忽略它们。问题是,我在无用的编译上浪费了很多时间。
有没有一种方法可以使用 setup.py
对文件夹中的所有 .pyx 文件进行 cythonize,而不用编译它们?
编辑:为什么不直接使用 $ cython my_file.pyx
我有大约 20 个 .pyx 个文件,它们具有不同的 compiler directives。在命令行上为每个文件调用 cython
比仅仅等待它编译要慢。
另一方面,创建一个 shell 脚本来对它们进行 cythonize 处理会给我留下第二份需要保持最新的编译器指令列表。我宁愿不这样做,以尽量减少可能的故障点。
创建 C 文件而不编译它们的一种方法是首先删除 setup.py "setup(...)" 行并只用 "cythonize("*.pyx")" 部分替换它。然后运行:
me@machine$ python setup.py