Skip to main content

97 posts tagged with "python"

View All Tags

· 2 min read

What is jythonroid

Jythonroid is a project for porting jython on Android platform. Created by ClassFoo.

Jythonroid is for console-only at this time. It means oneday Android has console/terminal app in device, you could use jython on real android phone. (or please point me if there's an exist console/terminal app for Android)

Jythondroid was worked on m5-build but outdated when 1.0 SDK comes out. Now Jythonroid (branch) works on 1.0 SDK & Android Emulator again. Since there's no GUI yet, you could checked out the code, run the emulator(install in emulator), and use adb shell on PC to try jythonroid.

Project Url

http://jythonroid.googlecode.com

Howto

1. check out the source

use svn to check out the project source

$ svn co http://jythonroid.googlecode.com/svn/branches/Jythonroid jythonroid

2. import project

In Eclipse, select "File > Import > Existing Projects into Workspace" in tool bar to import jythonroid project into your workspace.

3. setup emulator and run

setup debug settings and press "Debug/Run" button to install jythonroid into Emulator.

4. Run with adb shell

WARN: Since jythonroid is in its early phase, at this time it could only be evaluated on dalvik vm/emulator.

open adb shell, enter data/app folder, and run jythonroid

$ adb shell

cd data/app

dalvikvm -classpath org.classfoo.apk org.python.util.jython

Here's the screenshot:

· 3 min read

之前提到過 Python 2.6 新採用了一套叫做 Sphinx 的 rst 文件生成系統來管理 Python 語言官方的文件資料,用 sphinx 所生成的文件網站除了頁面能自訂樣式,自訂文件導覽順序,甚至還有附有搜尋功能。

已經寫過一篇 試玩 Sphinx

而現在值得再提的是,Sphinx 專案已經獨立出來了,可以將 sphinx 應用在任何需要文件網站的情況裡。

1. 安裝

easy_install sphinx

2. 打開命令列,找個目錄,鍵入

sphinx-quickstart

照著互動提示輸入一些生成訊息後, sphinx 會在目錄中生成幾個簡單的檔案。

目錄中生成幾個簡單的檔案其內容為:

  • conf.py

conf.py 中的內容大部分是我們剛剛在互動提示中填入的資訊,在此都可以修改。

0.5 版之後支援中文介面 (我丟的 Patch),只要在 conf.py 中指定「language = 'zh_TW'」即可。

  • MAKEFILE

給 linux 或 mac 用的 make 檔。

  • index.rst

index.rst 等於是整個文件站台的主頁

  • .template

文件站台的樣板,要自訂樣板就修改這。

  • .static

靜態文件,如圖片等內容。

  • .build

建立 (編譯) 好的文件在此。

.template/.static/.build 這樣的檔案在 windows 下不易辨識,可以在互動提示中詢問 "Name prefix for templates and static dir [.]:" 時,將 '.' 改成 '_'。 那麼生成的資料夾就會變成 _template/_static/_build。

3. 建立文件

sphinx 會在目錄中生成 make 檔,輸入

make html

即能產生完整的 html 文件站台。

如此一來,整個完整的站台都能用 rst 格式來構成啦,實在便利。

沒有寫過 rst (結構化) 文件的人,也可以參考 reStructuredText Primer

PS: 順帶一提, Pylons 與 TurboGears2 都已經有 sphinx 支持了。 TurboGears2 的部份 (這個是我加進去的) 可以用原始碼 docs 目錄中的 get_tgdoc.py 從 docs.turbogears.org 自動下載 rst 格式文件,然後再用上面提到的 'make html' 轉成 html 文件檔。

· 3 min read

開發過 Google App Engine 網頁應用程式的 Python 開發者,可能都有種被縛手縛腳的感覺。因為現成 Python 的網頁框架在 Google App Engine 上,有些地方因為 Google App Engine 的限制而無法作用,因此用起來不是很順手。

GAEO (Google App Engine Oil) 是個專門作用在 Google App Engine 上的框架,免去 Google App Engine 一切得自己手動建造的麻煩。

安裝

使用

easy_install gaeo 命令就可以安裝好。

安裝完提供 gaeo 跟 gaeogen 兩個命令。

建立新專案

使用

gaeo <專案名稱> 來建立一個新專案,新專案中除了基本 Google App Engine 的設定檔案外,還複製了一個 gaeo 檔案夾,提供 gaeo 相關的函式庫。

建立後進入專案,啟動 Google App Engine 開發工具的 server 就可以看到運行的網站。

還可以改使用

gaeo --eclipse <專案名稱> 來順便建立 pydev+eclipse 開發環境用的專案資訊。

程式碼組織方式

GAEO 組織程式碼的方式一樣是網頁框架常見的 Controller/Model/Templates 組織方式。剛建立的資料夾主要內容如下:

main.py application/controllers/welcome.py application/template/welcome/index.html

main.py 中可以透過 initRoutes () 函式來修改 url 對應的類別 (class)。 template 中的 welcome 資料夾則是直接對應到 controllers 中的 welcome.py。

新增函式

要新增一個 url 處理函式,可以用

gaeogen controller blog view post 命令,會在 application/controllers 中建立 blog.py 檔案,裡面有一個 'blog' class,class 中包含 'view' 和 'post' 兩個 method。另外 application/template 中也會建立一個 blog 資料夾,裡面包含 view.html 和 post.html 兩個 Django template 檔案。

技術

技術上 gaeo 樣板使用 django template,而整個 routing 是採用「一頁樣板 (template) 對應一個方法 (method) 」的組織方式,可以用類似 route 的方式添加新方法。0.2 版除了提供 scaffold (鷹架) 之外,也提供 plugin 系統,整個很有 Ruby on Rail 的感覺。

照著官方文件說明做一遍,一個多小時內就可以上手開發 Google App Engine 上的網頁應用程式啦。

· One min read

看了 Creating your own code swarm 這篇文章,照著弄了一套程式碼群圖 (Code Swarm) ,真的很簡單有趣。

程式碼群圖是指從 svn, git, hg 上取得更新 log,由 CodeSwarm 程式分析,產生出以時間為單位的一張張截圖。

上圖是周蟒的程式碼群圖。

· 2 min read

Guido 在 Jaiku 上提到一篇「Learning Python」文章

裡面提到,Python 社群的最大問題就是注意力實在太分散了。相比用 PHP 或 Ruby 語言的人,問他們「對在哪方面使用該語言開發感興趣?」這問題,你幾乎都會聽到「Web 開發」。而在 Python 社群裡隨意抽五個人,問他們對在哪方面使用 Python 語言開發感興趣,則很可能會得到不同的五個答案。

所以在該文最後也提出了兩個問題:

1. 舉出 10 件所有人會想用 Python 語言寫而不用其他語言寫的事

2. 舉出 10 個所有人都會想問的關於 Python 語言的問題。

經過一些討論後,在此舉出「 10 件關於 Python 語言所有人都想問的問題」:

1. 為什麼 Python 既是動態語言又是強型別的語言? 2. 用哪個 IDE 寫 Python 比較好? 3. 有什麼關於 Python 語言的好書? 4. 學 python 語言能找到工作嗎? 5. 為什麼用縮排而不是用括弧或「End」來分段? 6. 用哪種 GUI 好? 7. 為什麼 Python 比 xxx 語言慢? 8. 如何開始學習 Python 語言?有什麼好建議嗎? 9. 有什麼小巧的 Python source 或專案項目可以參考練手? 10. 怎麼在 Windows 上直接跑 Python 程式 (不先安裝 Python)?

8/12/2008 更新: Guido 採用了這 10 個問題,並在 python wiki 上開了專頁