星期日, 2月 11, 2007

ezpyinline 0.1 釋出

http://cheeseshop.python.org/pypi/ezpyinline

ezpyinline是我想改進已經從2001年就沒釋出新版的PyInline的一個新專案.
目的就是想讓Python底下非常容易內嵌C語言來改善速度.

我知道類似的東西很多,
std裡的dl,ctypes, 3-party的pyrex,Boost.python,weave,shedskin等很多...
都是為了改善Python的速度.
但是可沒有一個有作到這麼簡單使用,
讓使用者只需下載一個.py檔案就完成一切.使用者也不需自行編譯C.

因此我覺得ezpyinline特別適合用來評估你的Python程式,
到底哪一部份和有沒有必要使用C改寫.

而ezpyinline的精神基本上就是希望完全不用作任何設定.
第一次使用就自動幫妳編譯, 所有編譯出來的檔案也自動幫妳管理.
使用者只要寫Code, 所有系統維護的事都不用煩惱.

講這麼多都沒用, 試一下就知道了, when you see it, you know it.

安裝:
力求做到無痛及輕量, 有setuptools的, 可以直接 easy_install -Z ezpyinline
沒有超級使用者權限或者不想安裝的使用者也可以下載完直接拷貝
ezpyinline.py到你想要內嵌script的目錄

使用:
安裝或下載完之後, 編輯helloworld.py

#!/usr/bin/python
import ezpyinline

code = r"""
int helloworld() {
printf("hello ezpyinline!\n");
}
"""

ezpyinline.C(code).helloworld()

儲存檔案, 執行python helloworld.py
hello ezpyinline!

嘿, it works :)

網站上有更多說明,
過一陣子我也會把東西跟文件寫詳細一點加到Sourceforge上.

ps:
恩, 不要誤會了,
我可不是鼓勵使用者使用C,

老生常談的"premature optimization is the root of all evil",


Optimization: Your Worst Enemy 也指出
Do not do clever optimizations that have no meaning.

但不得不承認C在某些特定應用目前無人可敵,
在軟體的進程尚未發展到能拋棄C的使用時, (或許數十年之內也不會有)
使用Python, "偶而"加上部分的C是可以被我這種Python基本教義派"原諒"的. :P
既然如此, 何不作的更容易使用?

沒有留言: