【发布时间】:2016-04-07 23:51:42
【问题描述】:
我有一个包含多个 .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 文件进行 cythonize 处理,而无需编译它们?
编辑:为什么不直接使用$ cython my_file.pyx
我有大约 20 个具有不同 compiler directives 的 .pyx 文件。在命令行上为每个文件调用 cython 比等待它编译要慢。
另一方面,创建一个 shell 脚本来对它们进行 cythonize 会给我留下第二个需要保持最新的编译器指令列表。我宁愿不这样做,以尽量减少可能的故障点。
【问题讨论】:
-
cython your_file.pyx不正是因为这个原因吗!? -
是的,我可以编写一个 shell 脚本来将它应用到我所有的
.pyx文件中。但这会给我的项目添加另一个文件,我必须保持最新,尤其是关于 Cython 参数。鉴于 setuptools 每次构建项目时都会执行此任务,我希望有一种方法可以使用它。也许我只是错过了正确的命令。
标签: python cython setuptools setup.py software-distribution