スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

pythonをインストールして、やっぱRubyでいいやと思った

普段はRuby使い・・・と言えるほどは使ってませんね。
必要に迫られ、たまーにRubyを使うかな?というくらいのへなちょこRubyistです。

ところが、先日仕事で、先人の書いたpythonプログラムを入手したのですが、手元に実行環境が無かったので、インストールするハメになりました。


2011年1月末現在、Pythonの最新バージョンは、3.1.3と2.7.1の2種が存在します。

一方、python開発環境として有名なものとして・・・・
1. Eclipse+Pydev
2. PyScripter
の2種があり、計4通りの組み合わせがあります。

Python未経験者が、ちょっとお試しする場合の選択肢として・・・

・最先端のPython3とEclipseの「とりあえず全部入り」パターン
・安定重視のPython2とPyScripterの「おてがるシンプル」パターン
のどちらにしようかと、ちょっと迷いました。

前者のEclipse(日本語化Pleiades)だとダウンロード容量だけでも1GBを超えてしまうビックサイズ。
一方後者は、USBにインストール可能なPortable版があり、わずか45MBでした。

と、いうことで、Portable Pythonをインストールしてみました。

Portable_Pythonですが、バイナリーが破損しているインストーラーを公開しているサイトが結構ありました。
いろいろ探した結果、こちらのサイトのUSA-HTTPからまともなバイナリをゲットすることができました。

インストールは・・・超簡単なので、詳細は省略します。


で、rubyとpythonの比較ですが・・・
とりあえず、「ブラウザを起動して、googleで"focuslights"を検索する」プログラムで比較してみました。

ruby:
require 'win32ole'
ie=WIN32OLE.new('InternetExplorer.Application')
ie.Navigate("http://www.google.co.jp/")
ie.Visible = true
while ie.busy; sleep 1; end
ied=ie.document.all
ied.Item("q").Value="focuslights"
ied.Item("btnG").click()

python:
from PAM30 import PAMIE
ie = PAMIE()
ie.navigate("http://www.google.co.jp")
ie._wait()
ie.setTextBox("q", "focuslights")
ie.clickButton("btnG")


rubyはオブジェクト的で、pythonのほうは関数的といったところでしょうか。
ま、どちらも大差ないですね。

が、ここまで至るのに、大きなプロセスの差がありました。



よく言われているように、rubyは日本語のドキュメントが充実しています。
ちょっとググレば、rubyからwindowsアプリをコントロールする方法がいくつもヒットします。

なかでも、最良のドキュメントはRubyist Magazine(るびま)サイトでしょう
>Win32OLE 活用法 【第 1 回】 Win32OLE ことはじめ
ここだけで、rubyからIEやExcel、Accessなどをコントロールする方法が一通り学べます。

一方pythonではどうだったかというと・・・・

まずieコントロール用のモジュール(PAMIE)は基本パッケージに含まれず、別途インストールが必要でした。
また、Portable Pythonの、Win32allモジュール(pywin)には設定間違いがあり、そのままでは動作しません(PortablePython1.1Py2.6.1)。

そのうえ、Pythonは日本語のドキュメント・サンプルプログラムがまとまったサイトを見つけることはできませんでした。

さらに・・・
PAMIEはver30で大きな仕様変更があったらしく、海外を含めウエブ上で公開されているサンプルプログラムのほとんどは動作しません。

結局モジュールのソースファイルを読んで、一つ一つ解析するはめになりました。

PAM20: buttonClick() → PAM30: clickButton()
最悪ですね。


最初の話に戻ると、結局、先人の書いたプログラムはそのままで動かすことができませんでした。
どうせ書き換えるなら・・ということで、結局rubyで書き直すことしたfocuslightsでした(苦笑


pythonもrubyも素人なので、誤りがあるかもしれません。
コメントでご指摘いただければ幸いです。

コメント

Secret

プロフィール

focuslights

Author:focuslights

since 2007.4.29
誤りのご指摘は大歓迎ですが、考え方に対する抗議は一切お受けいたしません。
リンク確認等は不要です。

すべての文章は、法律並びに医学に対する資格を有さない、一個人の心情を吐露したものであり、法務もしくは治療法に関する情報提供を目的としたものではありません。

本ブログにはいわゆる見通情報(forward-looking statements)を含み、実質的にこれら見込みとは異なった現実的な結果に至ることがあり得ます。
本ブログはそれらを参照したことによって引き起こされる一切の結果に対して責任を負いません。
また、見通し情報に更新もしくは改正が望ましい場合であってもその義務を負いません。

批判的な文章を掲載する際には解決法の提示が望ましいと考えていますが、問題点を抽出整理して、広く知らしめることで、集合知により解決を図ることも重要と考えているため、対案の提示は必須とは考えていません。

オーストラリアのカンガルー虐殺反対活動を推進しています。

テンプレート「RotundityBlue」と「cfdn_12」を利用させていただいています
Ne me blâmez pas.

批判的なコメントを入力される時には、なるべく対象を明記してください(ブログ主への批判なのか、以前のコメントに対する批判なのか。など)

最近の記事
最近のコメント
リンク
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
ブログ検索
ブロとも申請フォーム

この人とブロともになる

RSSフィード
By FC2ブログ

Powered By FC2ブログ
ブログやるならFC2ブログ

FC2カウンタ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。