2014-01-16 252 views
0

我是Cython的新手,我来自web开发背景。我想知道是否有一个Cython开发工作流程类似于我从Web开发中熟悉的工作流程。Cython开发工作流程?

例如,使用CoffeeScript开发Node.js Web应用程序时,我有一个Cakefile,用于监视CoffeeScript源中的更改,并在每次编写.coffee文件时自动将源代码编译为Javascript。

在Cython开发环境中完成类似事情的正确方法是什么?

+1

下容量瓶至少我认为Django的还有,如果你正在运行一个开发服务器,过程监控所有的文件翻译已打开,如果有更改,它会重新启动dev服务器。由于Python中没有必要的编译步骤(至少有一个与运行时分离),所以管理比描述的要简单一些。对于非本地系统,通常情况下,您会在VCS上设置一个提交后的挂钩,以便在开发环境中打包/部署/重新启动您的应用程序。 –

+1

@SilasRay,澄清,我实际上没有开发一个Web应用程序,并且我正在编写除Python以外的Cython。 Cython与Python类似,但确实有编译步骤。因此,我正在寻找一种能够自动编译Cython的(非Web)开发工作流程,如果存在这样的情况。 – Will

回答

3

首先,根据我的经验,这种工作流程并不特别习惯于网页开发之外。但是,有几个选项至少可以满足您的要求。

您可能想要使用某种类型的自动化构建工具,如SCons。 Cython开发者甚至为它提供了一个build tool

然后是setuptools/distutils,它们主要用于打包Python软件,但也支持构建C扩展。我想,这甚至是将Cython源代码构建到共享对象的规范方式。

还有另外一种选择也是用Cython本身的一部分:使用pyximport只需导入用Cython模块,像这样:

import pyximport; pyximport.install() 
import foo 

您不必担心编译然后,因为pyximport自动编译的模块必要时进口。

我希望这些选项之一至少类似于你要找的;)

+0

谢谢! 'pyximport'绝对是我所要找的最接近的东西,因为它完全避免了这种工作流程的需要。然后,当我发布一个版本时,我将只编译一次并发布它。 – Will