用“编译cython代码”;python compile.py“;而不是",;“建立”;命令行参数
我有一个compile.py脚本:用“编译cython代码”;python compile.py“;而不是",;“建立”;命令行参数,python,python-2.7,cython,distutils,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文本调用这个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文本调用这个compile.py
。要做到这一点,它应该从以下位置开始工作:
python compile.py
问题:如何修改上述脚本,使其可以使用python compile.py运行?
- 方法#1:
像这样使用
:script\u 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'], options={'build':{'build_lib':'.'}})
- 方法#2:
在顶部添加以下内容:
这有点像黑客,但它工作得很好,并且避免了创建新的构建系统,比如with(链接由@Melvin提供)import sys; sys.argv = ["", "build"]
setup(ext_modules=cythonize("module1.pyx", build_dir="build"), script_args=['build_ext'],
options={'build_ext':{'inplace':True}})
import sys; sys.argv = ["", "build"]