前ページ 1 2 3 次ページ / page 2 (3)

カテゴリ:Python

2007-01-19 Fri


python の開発環境 [Python]


動画で見る様々な Python 開発環境
http://kariyushi.plala.jp/chewganabira/51



2006-09-11 Mon


TurboGears 1.0b1 [Python]


http://coreblog.org/ats/turbogears10b1

XXで実績があるぞ!と、うたっているわりには、API がちょこちょこ変わっていたのが気になってましたが、そのあたりも最近では fix したとのこと。
これがなによりの朗報かも?


2006-04-30 Sun


Trac で複数のプロジェクトを扱う [Trac][Python][Apache]


以下、同僚に教えてもらったりした設定例。

Trac はなかなか便利なんですが、複数のプロジェクトを扱う場合は、すこし工夫が必要。

$ trac-admin /var/trac/hoge1 initenv 'Hoge1 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates
$ trac-admin /var/trac/hoge2 initenv 'Hoge2 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates


と、2つのプロジェクトを登録していた場合、

httpd.conf を

<Location "/projects/hoge1">
    SetEnv TRAC_ENV "/var/trac/hoge1"
</Location>

<Location "/projects/hoge2">
    SetEnv TRAC_ENV "/var/trac/hoge2"
</Location>


とか書き連ねて、各ディレクトリに、trac.cgi をコピーといった荒技を繰り出したくなるんですが(え?ならない?)、そんなことをしなくても

ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
<Location /trac>
SetEnv TRAC_ENV_PARENT_DIR /var/trac
</Location>


だけで OK。上の例だと

http://www.example.co.jp/trac

にアクセスすると、そのサイトで管理されているプロジェクト一覧が表示されるので、あとはそのリンクをたどればOK。もちろん

http://www.example.co.jp/trac/hoge1/
http://www.example.co.jp/trac/hoge2/

でもアクセス可能。

あとSubversion についてですが、ディレクトリを切ることでプロジェクトを分け、運用する場合の話。上記の例だと異なるプロジェクトのはずなのに、タイムラインを見ると、すべての更新情報が表示されるので、見通しが悪くなります(/var/lib/svnの部分)

ファイルシステム上に、そんなディレクトリねぇよ! とか思わず

/var/lib/svn/hoge1


とか指定しておくと、リポジトリツリーの hoge1 以下の変更のみが表示されるので、見通しがよくなります(cf. http://wota.jp/ac/?date=20060301#c01)

あとで直す場合は

/var/trac/hoge1/conf/trac.ini

[trac]
repository_dir = /var/lib/svn/hoge1


を修正すればOK。

ちなみに Trac の機能に不満をもったら

http://trac-hacks.org/

へアクセス。きっと欲しい機能をサポートしたプラグインがあるはず。


2006-04-09 Sun


Django と TurboGears [Python]


さきに Python の勉強だろ? って話しもありますが、Python の Django と TurboGears をインストールして遊んで見ました。

TurboGears の CatWalk に代表される Toolbox も確かに Ajax バリバリでいいんですが、その部分に関しては、若干カスタマイズに欠ける気がしました(普通にカスタマイズできるのかもしれないけど、要確認だなぁ)

個人的には、Django の方がよいかも?(昨日の会場では TurboGearsの方がいい!と手を挙げまくってた私ですが(^^;))

理由は以下から。

- CRUD の出来がよさげ
- 表示部分のカスタマイズが容易
- 管理画面は設定書き換えるだけで日本語化
- チュートリアルが最新バージョンに追随していて、進めやすかった。

いや、TurboGears 同様にカスタマイズとかできるのかもしれないけど、実際に触ってみての 1st impression は Django に軍配かなぁ?(そんなエラらそうに言える立場でもないんですが)

とりあえず Django でアプリを書くぞ! というのを自分のエサにして、Python の勉強に励むとしよう(^^;


2006-04-08 Sat


Python Workshop the Edge 2006 [Python]


前日飲みすぎてヘロヘロでしたが、出かけて来ました。

プログラムは

1. kizasi.jp : 今日,ブログで話題になったことって?
2. やり直しのための Python プログラミング
3. Skype 〜 活用と連携
4. 最新Webアプリケーションフレームワーク比較
5. IronPython のご紹介

でした。

発表資料は

http://www.python.jp/Zope/workshop/200604/index_2_html

からダウンロードできます。2006/04/08 現在では、すべての資料が掲載されていないようですが、後日掲載されると宣言されていたプログラムもありますので、そのうち載るでしょう :-)

以下、感想など。

1. kizasi.jp : 今日,ブログで話題になったことって?


kizasi.jp は、いわゆる一般の人達が書いているブログを解析することで、いま、なにがブログで語られているか、といったことを目に見えるようにしたサービスです( Blogwatcher と似たサービスといっていいかも。え、ちがう?(^^;))

たとえば JPNIC を検索すると、ここ最近だと

IPv 枯渇 提言 アドレス remarks 公開 向けた 氏名 a. b. ISP JPNICハンドル アドレス枯渇 MAINT-JPNIC mnt-by JNIC changed information AP 報告書 数年 10年


といったキーワードとともに語られることが多いなんてこともわかります。

システム構成としては、一部 C++ で書かれているところもあるそうですが、その多くが Python で書かれているそうです(クローラなども含め、計1万2000行程度のプログラムだそうです)

「なんで Python なん?」

という理由については

- 習得の簡単さ
- 標準ライブラリの充実
- コードが(書こうと思えば)きれいに書ける
- 実験的なコードが簡単に書ける
- はじめは技術スタッフのリーダーの好み?


が挙げられていました。「習得の簡単さ」については

http://musicmarq.jp/

を見てもらえればよいかもしれません。このサイトのプログラムは、入社したばかり(といっても2005年度ですよね?)の新人君が Python を勉強して、ほぼ1人で書いたそうです。良い経験させてもらってるねぇ:-)

2. やり直しのための Python プログラミング


基本的に時間がなく、駆け足。初心者も一応対象ではありますが、さすがに Python チュートリアルとかにも目を通したことがない! って人は、ついていくのが辛かったかもしれません。

内容としては、Python の基礎に加え

- スライス覚えるといいよ
- get,setdefault,pop を使うと便利(Python 2.4以降でしたっけ?)
  こいつを使うと、辞書の操作をするときに、default の値がセットできたりします。
- 内包表記について
- Generator について
- 日本語についての問題点の回避

とかが話されていました。とくに内包表記、Generator、またそれらの違いってのが興味深い話しだろうと思います。資料が掲載されたら、読み返したい……

3. Skype 〜 活用と連携


Skype って単なる VoIP ソフトじゃないのね。といった感じでした(^^;

Skype の紹介と、SkypeAPI で出来ること。またそれを Python から操作するには? といったことが紹介されていました。

ちょっと時間をとって、Skype API でじっくり遊んで見たいなぁ……

ちなみにSkype を使って遠隔会議とかやることもあるんですが、会社の中で、マイクつきイヤフォンで話している姿は、はたから見ると独りで話している危ない人に見えるらしい(同僚に、「いきなり話し出すからびびった」とか以前言われた)
他の人に誤解されていないか心配だ (^_^;

#Skype用の外付けの電話を使って話した方が自然かもしれない。でもあれって Linux で使えるんだっけ?

4. 最新Webアプリケーションフレームワーク比較


- Django
- TurboGears
- web.py

の3つのアプリケーションフレームワークの比較をパネル形式で話されていました。Django とTurboGears は、RoR に似た感じですね。詳細は、発表資料を見て頂くとして、個人的に気になった点を抜き出したものが以下。

- Django
-- 速い!
   2500万 PV/day の実績あり
-- アンチ黒魔術
-- 日本語ドキュメントが充実(すべて日本語訳が!)

- TurboGears
-- 既存ライブラリを統合したもの
   Mochikit, Kid, CherryPy, SQLObject
-- 徹底したドキュメント化(ドキュメントにない機能は存在していないと思って良い)
-- テストコード沢山
-- クールなCRUDフォーム自動生成ツールがある
-- Ajax 対応
-- オーサリングツールとテンプレートツールの相性がよい

- web.py
-- シンプル!

こんな感じ?日本語ドキュメントの充実と、パフォーマンスの良さから、Django にも惹かれるんですが、TurboGears について話しをされていた柴田さんが、実験的にほぼフル機能を搭載したSNSを書いたところ、「コード量は 500行ぐらいでした」とか、さらっと言われているのを聞くと、ちょっと衝撃を受けました。いま LDAP管理ツールを Perl で書いてるんですが、どう押し込んでも 1000 行は越えそうな感じなんですが……
あと、CatWalk とかも便利そうだし、ちょっと TurboGears で遊んでみたいなぁ(あわよくば、なんかのプロジェクトで使ってみたい)


5. IronPython のご紹介


CPython より速いぞ! ってな感じの IronPython ですが、.NET の機能とか、Visual Studio とも連係できるんだよ、という話しをされてました。
Python2.4互換とするべく、IronPython の開発はすすんでいるそうです。ちなみに IronPython は、商用利用もOKなライセンスです。いくつか制限事項はあるようですが。


2006-03-12 Sun


rlcompleter による補完 [Python]


GNU readline 向けではあるんですが、rlcompleter を使うと、tab による補完が可能らしい。

$ python
>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind("tab: complete")


とすると、

>>> str='text'
>>> str.tab
str.__add__           str.__lt__            str.encode            str.replace
str.__class__         str.__mod__           str.endswith          str.rfind
str.__contains__      str.__mul__           str.expandtabs        str.rindex
str.__delattr__       str.__ne__            str.find              str.rjust
str.__doc__           str.__new__           str.index             str.rstrip
str.__eq__            str.__reduce__        str.isalnum           str.split
str.__ge__            str.__reduce_ex__     str.isalpha           str.splitlines
str.__getattribute__  str.__repr__          str.isdigit           str.startswith
str.__getitem__       str.__rmod__          str.islower           str.strip
str.__getnewargs__    str.__rmul__          str.isspace           str.swapcase
str.__getslice__      str.__setattr__       str.istitle           str.title
str.__gt__            str.__str__           str.isupper           str.translate
str.__hash__          str.capitalize        str.join              str.upper
str.__init__          str.center            str.ljust             str.zfill
str.__le__            str.count             str.lower
str.__len__           str.decode            str.lstrip


おお! これは便利 :-)

via http://www.python.jp/doc/nightly/lib/module-rlcompleter.html
via http://www.python.jp/Zope/PyLog/1046404380/1046602589/index_html


2006-03-09 Thu


Python における perldoc って? [Python]


昨日はちょこっと、mailman のバグ(といっていいんだと思うんだけど)を追いかけてました。幸いなことに、ちょうど入門書の類に目を通していたので、ソースコードはある程度読めました。その点では良かったんですが、いまいち理解してないのに、修正までするのはなかなか骨でした。

で、一番ネックだったのが、使われているライブラリの機能や引数がよくわからん! ということでした。たとえば unicode() なんかは、どこにドキュメントがあるのか、なにを引数と取るのかがよくわからない。ああ! perldoc があれば……なんて思ってたんですが、実はとっくの昔からあるんですね(^^;

# pydoc unicode


これを知ってれば…… orz

普通に 初めての Python にも書いてあるし……やっぱり早く読破しなきゃ。この pydoc の面白いところは、ウェブサーバにもなるところ!

$ pydoc -p 8011


これで http://localhost:8011/ にアクセスすると……思った以上にいいかも。

#残念ながら IPv6 には未対応っぽい ;-p

いや〜〜 pydoc は、個人的には一つの break through ですなぁ。

こうなると CPAN は?とか思っちゃうんだけど、それが distutils であり、

http://www.vex.net/parnassus/
http://www.python.org/community/sigs/current/catalog-sig/
http://www.faqts.com/knowledge_base/index.phtml/fid/199/

ってことになるのかな?

http://www.python.jp/Zope/

も読もうっと。pydoc 知っただけで、なんか楽しくなってきちゃった :-)


2006-02-26 Sun


Python チュートリアル [Python]


Python チュートリアル
http://www.python.jp/doc/nightly/tut/

via http://sakito.s2.xrea.com/detail/

ドキュメントのダウンロードは

http://sakito.s2.xrea.com/python/pydoc/2.3/

から可能です :-)

初めての Pythonはリファレンスとして使って、Python チュートリアルを読んで勉強の方がよさげ?


2006-02-26 Sun


Python の Web Framework [Python]


Python Web Framework Statistics
http://www.jrandolph.com/blog/?p=24

via http://d.hatena.ne.jp/mopemope/20060212/p4

http://blogs.nuxeo.com/sections/blogs/fermigier/2006_01_13_python-megaframeworks
via http://mojix.org/2006/01/16/143714

RoR ちっくなフレームワーク? としては

- Subway (開発無期限停止中)
- TurboGears
- Django

あたりがメジャーらしい。その他の軽量なフレームワークは web.py ってのがあるみたい(Perl でいうところのCGI::Framework とか CGI::Application ぐらいの位置付けかな?)

TurboGears については

PythonからRuby on Railsへの回答か - Webフレームワーク 「TurboGears」 登場
http://mojix.org/2005/09/18/143711

が詳しい。個人的には、ここで紹介されている TurboGears : 20 Minute Wiki screencast に出て来るエディタが気になる。なんか勝手に () とか補完されたりして便利そう…… emacs の python-mode でもここまではやってくれないし。