MercurialEclipseのインストールでちょっとはまる(Linux)

Lubuntuで使っているEclipseにMercurialEclipseプラグインをインストールしようとしたのですが、ライセンス条項に同意する画面から先へ進めなくなってしまいました。「使用条件に同意する」みたいなラジオボタンを選択しても、次へ進むボタンがアクティブにならない感じ。そのときうまく行った手順のメモ。

原因は、Windows Binaries for Mercuailの指定の外し方にありました。
ヘルプ→新規ソフトウェアのインストールでhttp://cbes.javaforge.com/updateに繋ぐと、

・codeBeamer Eclipse Studio (with Mylyx)
・MercurialEclipse

の2項目出てきます。この画面から先に進む前にWindows用バイナリのインストール指定を外さないとダメみたい。
MercurialEclipseの左の三角をポチッと押すと、一階層下の内容が出てきます。ここでWindows Binaries for Mercurialを外してから先に進めば大丈夫。

ここでチェックを外さずに次の画面へ進んでしまうと、依存関係がおかしいよというようなエラーが表示されて一旦停止します。その画面でも上記Windows用のバイナリを除外できるように見えるのですが、ここで外しても、その次のライセンス条項画面へ進んだ際に何を指定しても先へ進めないという状態になる模様です。バグなのかなあ……

PythonのIDE

とりあえず、IDLEを試してみることにしました。いろいろといじってみてわかったことは……

IDLE

  • 軽くて便利。ただ、IDLEのエディタとPythonシェルの日本語の挙動は注意がいるっぽい。最初に本を読みながらPythonの練習をするときは、IDLEのシェルは使わないほうがいいかも。

IDLEのエディタ

  • ソースコードの1行目に# -*- coding:utf-8 -*-とか# -*- coding:cp932 -*-とか書いておくと、セーブするときに自動的にその文字コードエンコードしてくれる。
  • ソースコード1行目のエンコード指定がない場合は、IDLEエディタの設定ウィンドウで指定したエンコード(localかutf-8)でエンコードしてくれる。
  • ソースコード1行目のエンコード指定もなく、IDLEエディタの設定もエンコードなし(None)にしている場合、Windowsでは入力した文字がCP932のテキストになっているので、セーブするときにIDLEが「先頭に# -*- coding: cp932 -*-を入れたほうがいいよ? いいの?」と注意してくれる。これを無視してセーブするとそのままcp932でセーブされるのですが、Python文字コード指定の書かれていないコードをutf-8と仮定して実行するとのことなので、実行時にエラーを起こしたりします。
  • なお、IDLEエディタ側のデフォルト設定をutf-8としていた場合は、1行目の文字コード指定がない場合に自動的にutf-8でセーブしてくれるのですが、先頭にutf-8のバイトオーダーマーク(BOMというやつ。EF BB BFの3バイト)が入ったテキストになるようです。ところが、1行目にエンコード指定を入れることによってutf-8としてセーブされた場合は、BOMなしのutf-8としてセーブされます。また、BOMのついたソースにあとからエンコード指定を入れてセーブすると、何も言わずにスッとBOMを消してくれるようです。ソースコードエンコード指定を書いておけば、BOMなんていらないよ、というわけですね。
  • というわけで、とりあえずソースコードの頭に# -*- coding: utf-8 -*-を入れておけば、セーブしたときに自動的にutf-8に揃えてくれる(IDLEエディタの設定が何かに関わらず)ので、混乱しにくいと思います。なるべくBOMもつけたくないので、私はまめにこの指定を書くことにしました。

IDLEのコンソール

Windows版IDLEのコンソールの表示は、cp932で表示しているっぽい。なので、cp932で書いたテキストはそのまま表示できる。

>>> x="いろは"
>>> print x
いろは
>>> x
'\x82\xa2\x82\xeb\x82\xcd'

きちんとcp932になってますね……
これをLinux版のIDLEでやると、

>>> x="いろは"
>>> print x
いろは
>>> x
'\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf'

utf-8ですね。その人の環境次第なのかな? とりあえず、こっちはこっちで入力と出力が揃ってます。
では、WindowsのIDLEエディタで

# -*- coding:cp932 -*-
x = "いろは"
print x

こういうスクリプトを書いてみます。これを実行すると、

いろは
>>>

きちんとPythonシェル上に表示できました。これをLinux上のIDLEでやると、何も表示されません。この辺の、Pythonシェルが表示するエンコードの違いは要注意っぽいですね。なお、Linux版のIDLEエディタで上記の「# -*- coding:cp932 -*-」を入れたソースファイルも、きちんとCP932で保存してくれていました(ghexで確認)。

もうひとつ。Windows版のPythonコンソール(IDLEのじゃなくて、Python本体についてる、コマンドプロンプトみたいな奴)でユニコード文字列を扱うとき、

>>> x=u"いろは"
>>> print x
いろは
>>> x
u'\u3044\u308d\u306f'

となります。
また、続けて

>>> y = x.encode('cp932')
>>> print y
いろは
>>> y
'\x82\xa2\x82\xeb\x82\xcd'

となるので、Pythonコンソールの表示もCP932の模様。
ところが、IDLEのPythonシェルでは

>>> x=u"いろは"
>>> print x
‚¢‚ë‚Í
>>> x
u'\x82\xa2\x82\xeb\x82\xcd'
>>>

となりました。つまり、IDLEのPyhtonシェルでは、u"いろは"を「"いろは"に相当するCP932コードを持ったunicode文字列」として解釈してしまうようで、無意味な値になってしまっています。Python初心者向けの本は、だいたい導入部にコンソールをいじってみよう! という節があるっぽいですが、練習でPythonコンソールのかわりにIDLEのPythonシェルを使うと、うまくいかなくてはまるかもしれません。私ははまりましたw

文字コード周りはもっと練習が必要なようです……

Easy Installのインストールメモ

とりあえずWindows7での話ですが。

  1. まずは環境変数で、Pythonのパスを設定(やってなかったんか!)。コントロール パネル\システムとセキュリティ\の「システムの詳細設定」から、詳細設定タブの下のほうにある「環境変数」をクリックして環境変数を設定する。とりあえず、Python##とPyhton##\Scripts\に対するパスを追加。具体的には、セミコロンで区切ったフルパスを適当なところに挿入していきます。
  2. 次に、これをとってくる。http://peak.telecommunity.com/dist/ez_setup.py
  3. コマンドプロンプトから、Python ez_setup.pyを実行。

これでいいっぽい。

Ubuntu11.10にGIMPを、Windows7にPython2.6をインストール。

さて、環境の構築から。Pythonを勉強しようと思ったきっかけは、GIMPという画像処理ソフトの上で、Python-Fuというスクリプトエンジンを使ってみようと思ったからなのでした。というわけでGIMP環境を用意するのですが、手元にWindowsLinux(VMWareの上だけど)があるので、せっかくだから両方で使えるようにしたいところです。

まずはUbuntuから。10.10のDesktop版(32bit)です。個人的に11.10のUIはあまり馴染めないのですが、まあいいでしょう。

sudo apt-get update
sudo apt-get install gimp

これだけ。Ubuntuさまさまですね。これでGIMP2.6.11とPython2.7も一緒にインストールされます。
一応統合開発環境のIdleもインストールしておきます。

sudo apt-get install idle

これでOK。

で、Windowsのほうなのですが、こちらはGIMPPythonを認識させるために、あらかじめPythonをインストールした状態でGIMPをインストールする必要があるようです。こちらは会社で使っているバージョンがPythonの2.6だったため、念のためそちらにあわせておきました。

  • PyJUGさんからPython2.6のインストーラpython-2.6.6.msi
  • Gnomeの公式ページから補助ライブラリのpygtk-all-in-one-2.24.0.win32-py2.6を

落としてきて、インストールします。pygtkのほうが32bit版のPython専用らしいので、必然的にPythonも32bit版になります。
これにWindows版ヘルプと、Pythonのドキュメントをオフラインでも読めるようにするPythonSidebar-jaをインストールしました。どちらもPyJUGさんのダウンロードページにあります。

これらをインストールしたあとに、GIMPの公式ページからGIMP2.6.11のインストーラを落としてきて、インストール。起動時に勝手に日本語で起動してくれます。賢い。

起動した状態で、「フィルタ(R)」メニューに「Python-Fu」->「コンソール」メニューができていれば、OKのようです。

追記.Python公式だと2.6系は2.6.7が出ているようですが、今回は2.6.6でインストールしました。

目的みたいなもの。

このブログは、なんちゃって社内エンジニアの猿某が、その日覚えた(つもりの)ことをメモしたりするところです。なんせ猿なので、細かいことには目を瞑ってください。あと、書かれていることには一切責任を負えませんので、あしからずご了承くださいませ。

興味はいろいろですが、とりあえずPythonのお勉強かな。うん、Pythonをやろう。そうしよう。