tackeのブログ

I'm a software engineer.

[python][GAE][eclipse]Eclipse+Python/GAEの開発環境メモ(Pydev)

Mac OS X 10.6 Snow Leopardでの話。
自分用の覚え書きなので粗い内容ですが、まぁいいじゃないですか。

新年一発目、元旦エントリ。

構成

ザックリと、この構成で大丈夫そう。

Pydevをインストールしたら新規プロジェクト作成のリストにGAEプロジェクトが追加されていたのできっと対応しているに違いない。

ちなみにPydevプロジェクトを作成する前に以下の設定が必要なようだ。

Pythonインタプリタの設定

Eclipseの設定画面で「設定>Pydev>インタープリター - Python」のように階層を掘っていき、Pythonインタプリタのパスを指定する必要がある。
右の方にある「Auto Config」を押すと自動的に該当するパスを拾ってきてくれるので「OK」ボタンを押すだけで設定が完了する。
複数にチェックが入っていても気にせず「OK」を押せばたぶんなんとかなるはず。

直接「/usr/bin/python」とかを指定しても大丈夫だと思う。

GAE/Pythonのプロジェクト作成

あとはプロジェクトの新規作成でPydevカテゴリ内のGoogleAppEngineプロジェクトを選んで新規作成すればプロジェクトが作成される。
途中、「GoogleAppEngineDirectory」のパス入力を求められるけど、これはGAE SDKのツールをインストールしたところでいいはず。
「/usr/local/bin」にしようかと思ったが、設定ダイアログのメッセージに「libとかもあるディレクトリね」と指定されていたので以下のようなパスを設定。
「/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine」

あとはApplication-IDと、プロジェクトテンプレートが必須らしいので適当に選択してあげればEclipseのGAE/Pythonの開発プロジェクトが出来上がる。

開発用サーバでアプリを実行

「実行の構成」、または「デバッグの構成」で以下のように設定した。


「Pydev Google App Run」に新規の起動構成を作成し、メインタブの「プロジェクト」に作成したpythonのプロジェクトを設定、「メイン・モジュール」には「dev_appserver.py」のパスを設定する。
パスはこんな感じ→「/usr/local/google_appengine/dev_appserver.py」


引数タブの「プログラムの引数」に以下を設定。dev_appserver.pyにpythonプロジェクトのパスを渡す感じ。
「"${project_loc}/src"」

データストアをクリアしたい場合、この欄に「--clear_datastore "${project_loc}/src"」のように設定すれば良い。

↓この辺については以下を参考にした。
http://typea.info/blg/glob/2009/07/google-app-engine-pydev.html

おわりに

Eclipse上からGAEへのデプロイとか、開発用Webサーバをコントロールできるかとか、その辺は触ってないので分からないけど、まあ追々やってきますかね。

GDD PhoneにAndroid 2.2 Froyoを入れてみた

GDD Phoneを手に入れて1年以上、ほとんど触ることも無かったのでこれは勿体無いとばかりにとりあえずFroyoを入れるなどしてみた。

手順は以下のサイトを参考にしました。

使用したものや環境は以下のとおり

  • iMac
  • Android SDK
  • GDD Phone
  • recovery-RA-sapphire-v1.6.2G-blue.img
  • MT3G-test2_S.zip(カスタムROM)
  • Morelocale2(日本語化)

言うまでもないですが真似して何か問題が発生しても責任は負いかねます。何事も自己責任。

普通にインストールできた

割と簡単にFroyoをインストールできました。
とりあえず2.2がどんなもんかお試し中です。

素のGDD Phoneよりは断然早くなってる気がします。
あとはクロックアップでもしてベンチしてみますかねー。
クロックアップとスワップでHT-03Aの動作を軽快に|携帯総合研究所

ベンチマークはどのアプリがいいんだろ。

ちなみに元のROMイメージをバックアップし忘れたのでもう元に戻せませんwww


そんな適当で大丈夫か?
大丈夫だ、問題ない。

thinkpad x201sにUbuntuを入れてみた。

thinkpad x201sにUbuntuを入れて放置してたんですが、結構いい感じ。
まずWubiを使えばUbuntuのインストールが超簡単。
インストール後の設定も、英語キーボードの設定や、CapsLockとControlの入れ替え、IME切り替えの設定を「Shift+Space」にするのもかなり簡単に出来ました。

ChromeSkypeも一応あるのでその辺の心配もなし。
無線LANトラックポイントもそのままで動きます。

私が買ったx201sはウルトラナビとトラックポイントを両方搭載してるんですが、これも「Fn+F8」でウルトラナビの有効/無効を簡単に切り替えられました。(これはちょっとスゴいと思った!)

ただ、トラックポイントのスクロールだけはデフォルトでは有効にならないようなので以下を参考にして設定しました。
ubuntu 10.04 on ThinkPad X200s トラックポイントでのスクロール設定 - 記録

でもこれ以外は得に不満点も無いので、Ubuntuはかなりイケてるんじゃないでしょうか!?という気分になりました。
ちょっとこのまま使ってみよう。

Thinkpad x201sの設定メモ

x201sが届いたよ

3月にLenovothinkpad x201sを注文していたんですが、「CPUの需要逼迫のため」という理由で納期が2度、3度と遅れ、やっと今月届きました。


やったよー!届いたよー!の図。外側の箱を開けると中からLenovoの箱が出てきます。


梱包は質素。付属のマニュアル類も最小限かつ紙質は悪い。再生紙なのかな?エコすなぁ〜。

というわけで久しぶりのWindowsマシン、初めてのWindows7(64bit)なので後々参照できるようにメモを公開してみます。

基本的なセットアップ

まずは通常のセットアップ作業

  1. x201sを開封、バッテリーを装着、電源を接続、電源スイッチON
  2. Windowsセットアップ
  3. Lenovoの各種ツールセットアップ。指紋認証とかも設定してみた。
  4. Windows起動、各種ソフトウェアの更新をひたすら適用

ここまでは何も難しいことはなく、ひたすら通常のセットアップ作業なので割愛です。

自分好みに設定

さて、ここから自分用に必要な設定をしていきます。

1.セキュリティソフトのインストール(Microsoft Security Essentials

thinkpadセットアップ時にNortonInternetSecurity2009の30日体験版をインストール出来たので試してみましたが、なんとなく重いような気がするし、それ以上に各種ダイアログがウザいので消しちゃいました。NortonInternetSecurity2010の体験版もちょっと試しましたが同様です。どちらも体験版の使用登録にメールアドレスを求められるんですが、そのダイアログを閉じることができないためタスクマネージャから消すしかないという感じで、嫌になって消しちゃいました。
Microsoft Security Essentialsは無料だし、軽いし、評判も良いのでこれで十分です。
以下からダウンロード、インストールするだけ。
Microsoft Security Essentials - Microsoft Windows

2.英語キーボードの設定

今回購入したx201sは英語キーボードで注文しました。仕事でプログラムを書くときはHappy Hacking Keyboard Professional2(HHKB)を使用しているので、プログラミング用にx201sを購入した都合上合わせておいた方がストレスが少なそうだったので。JPキーボードを使えなくなるのもそれはそれで問題あるのでiMacはJPキーボードのままにしています。

以下のサイトを参考にしてレジストリ変更を行い再起動をすればOKです。
Windows 7 のキーボードを英語キーボードに変更 | へーいち の うぇぶろぐ

3.CtrlキーとCapsLockキーの入れ替え

HHKBMacのJPキーボードのおかげですっかり「CtrlキーはAの左」派になってしましました。というわけで設定を変更します。
実はこれ、Microsoftがツールを提供してくれています。

以下を参考にして設定すれば完了です。
Ctrl2Capツールで[Ctrl]と[CapsLock]キーを入れ替える − @IT

ところでCapsLockキーがCtrlキーになったのはいいんですが、CtrlキーがCapsLockキーにはならないようです。
CapsLockくんどこにいってしもうたんや、、、。

4.Shift+SpaceでIME言語切り替え

デフォルトだと「Alt+~」のキーボードショートカットで英語/日本語を切り替えるようですが、ちょっと押しづらいので変更します。
JavaプログラマとしてはEclipseの「Ctrl+Shift」と重なるのは避けたいので、「Shift+Space」で入力言語を切り替えられるように設定します。


コントロールパネルを開き、「キーボードまたは入力方法の変更」を選択します。


「キーボードと言語」タブを選択し、「キーボードの変更」を選択します。


デフォルトだと「Microsoft Office IME 2007」が指定されていました。Officeなんて入れてないんですけどね。
「全般」タブを選択し、「プロパティ」を選択します。


「全般」タブ内の「編集操作」欄にある「キー設定」の「変更」ボタンを選択します。


「キー設定」タブを選択し、キー設定を変更します。今回は「Shift+SPACE」のキーに「IME-オン/オフ」を設定します。
赤丸で囲ったところをダブルクリックします。
(画像では既に「IME-オン/オフ」が設定されていますが気にしないでください。)


IME-オン/オフ」をダブルクリック、もしくは選択してOKボタンを選択します。

これで「Shift+SPACE」を押すとIMEの日本語/英語が切り替わるようになりました。
デフォルトだとShift+SPACEを押すと半角スペースが入力されますが、この設定を行ったあとは入力を半角英数に切り替えてからスペースを入力するという感じになります。

5.Explorerで拡張子を表示するように変更

以下の記事を参考にして設定をすれば完了。
Windows7で拡張子の表示をする設定方法 ☆ぺんろぐ!

雑感

こんなところでとりあえず自分にとって最低限の設定はできました。

あとはランチャなどの各種ツール、開発環境を入れたらおしまいかな〜。
ちなみにWubiUbuntu入れましたけど普通に動きました。これはそのうち設定しよう。

ちなみにthinkpadのキーボードは今のところ悪くないです。普段はHHKB使いなのでチルダとバックスラッシュの位置が違うのと、Backspaceキーの位置がちょっと遠いのが気になりますが、そのうち慣れるでしょう。
しかし矢印キーの右上、左上にあるブラウザの「進む/戻る」ボタンはちょっと嫌だなー。ブラウザで何か入力しているときに矢印キーと間違えて不意に押しちゃったりすると入力内容がパーになっちゃいます。実際、このエントリーを書いても何度もそんなことが起きてしまいました。
設定で殺せるならこのボタンは殺しておきたいなー。

MacOSX SnowLeopardでpythonのインタラクティブシェルに日本語入力できない

最近、pythonを勉強してます。
テキストはamazon:みんなのPython 改訂版を利用しています。
とても丁寧な解説でいい本だと思います。

それはさておき、SnowLeopardに最初からpythonが入ってるんはいいんですが、インタラクティブシェルに日本語を入力しても「ドゥンドゥンっ!」って感じで日本語入力を受け付けてくれません。

これでは教科書通りのソースコードが試せない!!!
というわけで解決方法をググって、試して、解決っ!!!!しましたのでまとめておきます。

LeopardにバンドルされてるPythonでreadlineを有効にする方法を見つけた。 - Yのはてな
OS X での Python + readline - 宇宙線実験の覚え書き

上記あたりを参考にしたんですが、MacPortsFink?なにそれうまいの?*1って感じです。
よく分かんないのですが、とりあえず上記の記事から予想して以下のコマンドを試したら成功したので、とりあえずこれだけでいいんじゃないかと。(適当)

$ easy_install readline

インストール後、以下のように日本語入力を受け付けるようになりました。ヤッタネ!!!

$ python
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> str = u"日本語"
>>> print str
日本語
>>> 

これで僕も安心してpythonプログラマー道を歩めるよ!!!良かったね!!!!!

*1:よく分かんないのでMacPortsを入れてみたけど、今回は必要なかったようです。。。