2015-07-10 100 views
2

我想cythonize一些Python模块(在Windows上)和要存储在不同的目录中生成的.c文件。Cythonize Python模块到不同的目标目录

我想是这样的:

from Cython.Build import cythonize 
module_list = cythonize(r'C:\myproject\module.py', 
         force=True, 
         build_dir=r'C:\myproject\compiled_modules') 

编译完成但在C创建文件的module.c:\ MyProject的,而不是在C:\ MyProject的\ compiled_modules预期。我究竟做错了什么?

回答

2

我不知道该cythonize功能可以强迫这样做。我只想用命令行:

/path/to/cython yourmod.py -o compiled_modules/yourmod.c 

编辑:

import subprocess 
subprocess.check_call(["/path/to/cython", "yourmod.py", "-o", "compiled_modules/yourmod.c"]) 

编辑2:

根据

此命令可以从一个python脚本中使用的子模块调用到this Sage developer,重新定位C/cpp文件不被用Cython支持,因此它看起来像无论是从命令行编译或使用通常的配置和叔母鸡移动c/cpp文件是你唯一的选择。

+0

好斯科特。一切都很好,使用命令行,但我真的想要使用Python脚本并一次处理多个文件。谢谢! – jheyse

+0

更新,以显示如何在命令行中通过'subprocess'模块调用。 –

+0

伟大的斯科特!感谢您确认它不被支持。我会尝试你的建议与子进程模型。接受答案。再次感谢! – jheyse