我是Cython的新手,我来自web开发背景。我想知道是否有一个Cython开发工作流程类似于我从Web开发中熟悉的工作流程。Cython开发工作流程?
例如,使用CoffeeScript开发Node.js Web应用程序时,我有一个Cakefile,用于监视CoffeeScript源中的更改,并在每次编写.coffee
文件时自动将源代码编译为Javascript。
在Cython开发环境中完成类似事情的正确方法是什么?
我是Cython的新手,我来自web开发背景。我想知道是否有一个Cython开发工作流程类似于我从Web开发中熟悉的工作流程。Cython开发工作流程?
例如,使用CoffeeScript开发Node.js Web应用程序时,我有一个Cakefile,用于监视CoffeeScript源中的更改,并在每次编写.coffee
文件时自动将源代码编译为Javascript。
在Cython开发环境中完成类似事情的正确方法是什么?
首先,根据我的经验,这种工作流程并不特别习惯于网页开发之外。但是,有几个选项至少可以满足您的要求。
您可能想要使用某种类型的自动化构建工具,如SCons。 Cython开发者甚至为它提供了一个build tool。
然后是setuptools/distutils,它们主要用于打包Python软件,但也支持构建C扩展。我想,这甚至是将Cython源代码构建到共享对象的规范方式。
还有另外一种选择也是用Cython本身的一部分:使用pyximport只需导入用Cython模块,像这样:
import pyximport; pyximport.install()
import foo
您不必担心编译然后,因为pyximport自动编译的模块必要时进口。
我希望这些选项之一至少类似于你要找的;)
谢谢! 'pyximport'绝对是我所要找的最接近的东西,因为它完全避免了这种工作流程的需要。然后,当我发布一个版本时,我将只编译一次并发布它。 – Will
下容量瓶至少我认为Django的还有,如果你正在运行一个开发服务器,过程监控所有的文件翻译已打开,如果有更改,它会重新启动dev服务器。由于Python中没有必要的编译步骤(至少有一个与运行时分离),所以管理比描述的要简单一些。对于非本地系统,通常情况下,您会在VCS上设置一个提交后的挂钩,以便在开发环境中打包/部署/重新启动您的应用程序。 –
@SilasRay,澄清,我实际上没有开发一个Web应用程序,并且我正在编写除Python以外的Cython。 Cython与Python类似,但确实有编译步骤。因此,我正在寻找一种能够自动编译Cython的(非Web)开发工作流程,如果存在这样的情况。 – Will