2014-01-16 187 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