python - Cythonize python 模块到不同的目标目录

标签 python cython

我正在尝试对一些 python 模块(在 Windows 上)进行 cythonize,并希望将生成的 .c 文件存储在不同的目录中。

我尝试过这样的事情:

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

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

最佳答案

我不确定cythonize函数可以被强制这样做。我只想使用命令行:

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

编辑:

可以使用 subprocess 模块从 python 脚本调用此命令:

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

编辑2:

根据this Sage developer ,cython 不支持重新定位 c/cpp 文件,因此看起来从命令行编译或使用正常配置然后移动 c/cpp 文件是您唯一的选择。

关于python - Cythonize python 模块到不同的目标目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31345143/

相关文章:

python - 在 Python 中将外部函数指定为 staticmethod

c++ - 带有 STL vector 的 Cython 且没有可从其他应用程序调用的 NumPy,缺少什么?

python - 使用 Eclipse PyDev 让 Cython 在 Windows 7 中工作

python - python中数学函数的优化和加速

python - 如何使用 Cython 用外部变量包装 C 文件

Python 从 ascii 样式的 .txt 文件加载数组

python - 有没有办法连续读取 CSV 文件并使用 Flask 将其显示在 HTML 上?

python - 我一直在 Swift 中使用一个函数,它有一个很好的 Return Closure

python - 在 OS X 上安装 PySCIPOpt

python - Cython 不适用于带参数的双装饰器。有解决方法吗?