使用“ python compile.py”编译cython代码,不使用“ build”命令行参数

时间:2018-11-06 12:23:31

标签: python python-2.7 cython distutils

我有一个compile.py脚本:

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize("module1.pyx"))

编译我的Cython代码。缺点是我必须使用命令行参数build来调用它:

python compile.py build

相反,我希望能够像往常一样直接使用 CTRL + B 从Sublime Text调用此compile.py。为此,它应该在以下位置工作:

python compile.py

问题:如何修改上述脚本,使其可以与python compile.py一起运行?

1 个答案:

答案 0 :(得分:0)

  • 方法1

    像这样使用script_args

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build'])
    

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build_ext'])
    

    (都是工作)。

    如果要将输出文件放在同一目录中,可以使用:

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build'], 
                                                options={'build':{'build_lib':'.'}})
    

    setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build_ext'],
                                                options={'build_ext':{'inplace':True}})
    
  • 方法2

    将此添加到顶部:

     import sys; sys.argv = ["", "build"]
    

    有点像黑客,但它工作正常,避免像Build and run with arguments in Sublime Text 2(@ Melvin友善地提供链接)那样创建新的构建系统。