macで蛇使い入門記:Pythonのバージョンとインストール
この記事(多分シリーズ)の前提
- OSはMacOSX 10.6 Snow Leopard
- macportsの環境整備済みであること。
- 多分文法の話はしない。
- 多分Java使い向けに話す。っていうか俺向けに話すw
Pythonのバージョン
Pythonの最新バージョンは3.x系。2系から3系になるにあたって、多少互換性を失っているぽい。
だが、2.x系が未だ主流。Google App EngineではPython2.5を採用、その他ではPython2.6を採用するイメージっぽい。
まぁ、これから時代は3系になっていくのだろうけど、まだ色々環境を整備しづらかったり、トラブルも多いのかも。ということで、Python2.6環境を中心に、場合によってはPython2.5を使えるように、まぁ気が向いたらPython3系も使えるように、という感じの環境を作ってみたい。
Snow LeopardにおけるPyhton
確かOSデフォで入ってるんですよね。以下のコマンドを叩いて、色々確認してみる。自分の場合は、macportsでもさらにインストールされていて(多分git-coreを入れた時に推移依存で)、既に複数のPythonが同居してました。まず、portsで入っているpythonの確認。
$ port list installed | grep py python26 @2.6.6 lang/python26 python_select @0.3 sysutils/python_select
そして状況を追いかけてみる。
$ python -V Python 2.6.6 $ which python /opt/local/bin/python $ ls -l `which python` lrwxr-xr-x 1 root admin 24B 10 13 16:08 /opt/local/bin/python@ -> /opt/local/bin/python2.6 $ ls -l /opt/local/bin/python2.6 lrwxr-xr-x 1 root wheel 73B 9 29 19:45 /opt/local/bin/python2.6@ -> /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 $ ls -l /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 -rwxr-xr-x 2 root wheel 8.4K 9 29 19:45 /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6*
何も考えずにpython叩いた時に呼ばれているのは、 /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 にある v2.6.6 のようです。パスから推測するに*1、これがportsで入れたpython26だな、と判断。
$ python[TAB] python python2.5 python2.6 python_select pythonw2.5 python-config python2.5-config python2.6-config pythonw pythonw2.6
コマンドラインからpythonで補完すると、色々でてきた。こいつらを色々追いかけてみると、自分のmacの中には、ざっと4つのpython実行ファイルがあることが確認できた*2。これらを図解で整理するとこう。
プロンプトに python って打つと(緑)、どこに繋がるのか。青がシンボリックリンクで、赤が実体。恐らく、背景色なしの部分がmacosにデフォで入っているもので、オレンジの背景の部分がmacportsで作られた環境。というわけで、macports環境を作っていない人は、 /usr/bin/python (v2.6.1) にたどり着き、自分は一番上の v2.6.6 にたどり着いたのだろう。
環境の切替
python_selectっていうコマンド(portsパッケージ)がありました。とりあえず触ってみる。-lオプションで選択肢一覧表示、-sオプションで現在の選択状態を表示、です。
$ python_select -l Available versions: current none python26 python26-apple $ python_select -s python26
currentとnoneってのは未調査。とりあえずpython26になっているので、python26-appleに切り替えたり戻したりしてみよう。
$ sudo python_select python26-apple Selecting version "python26-apple" for python $ python -V Python 2.6.1 $ sudo python_select python26 Selecting version "python26" for python $ python -V Python 2.6.6
macportsでpython25をインストール
$ sudo port install python25 (略) $ python_select -l Available versions: current none python25 python26 python26-apple
python_selectでpython25も選択できるようになりました。
んじゃ、他のバージョンは?
$ port search python (略) python24 @2.4.6 (lang) An interpreted, object-oriented programming language python25 @2.5.5 (lang) An interpreted, object-oriented programming language python26 @2.6.6 (lang) An interpreted, object-oriented programming language python27 @2.7 (lang) An interpreted, object-oriented programming language python31 @3.1.2 (lang) An interpreted, object-oriented programming language python32 @3.2a2 (lang) An interpreted, object-oriented programming language
おう、色々あるやん。とりあえず3.2いってみっかー!
$ sudo port install python32 ---> Computing dependencies for python32---> Fetching python32 ---> Verifying checksum(s) for python32 ---> Extracting python32 ---> Applying patches to python32 ---> Configuring python32 ---> Building python32 Error: Target org.macports.build returned: shell command failed Log for python32 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python32/main.log Error: Status 1 encountered during processing. To report a bug, see <http://guide.macports.org/#project.tickets>
あ、なんかダメ…。3.2a2とかになってるから、まだ不安定なんかな。3.1にしておこう。
$ sudo port install python31 (略) $ python_select -l Available versions: current none python25 python26 python26-apple python31
ま、色々やったけど今後しばらくは、2.6の世界だろうから、python26に設定しておこう。
$ sudo python_select python26
さて
ここまで行けば、各バージョンのインタラクティブシェルが動かせるようになる。あとはみんなのPythonとか読んで、文法と基礎的なAPIを把握すんべ。
- 作者: 柴田淳
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/04/11
- メディア: 単行本
- 購入: 23人 クリック: 572回
- この商品を含むブログ (84件) を見る
つづく。と思う。多分。恐らく。