インストール

Windows

http://www.python.org/download/ から、 Python 3.x.y Windows Installer と書かれているリンクをクリックして、インストーラーをダウンロードして ください。 (x.y にはバージョン番号が入ります)

このインストーラーでインストールすると、 C:\\Python3.3 のような ディレクトリに Python がインストールされます。 インストール中に “Add python.exe to Path” というオプションを選択できますが、 Python 本体だけでなく追加のスクリプトも利用するために、 環境変数 PATHC:\\Python3.3C:\\Python3.3\\Scripts を設定してください。

これで Python 本体のインストールは完了です。 以降は必須では無いですが、いくつか便利なライブラリのインストール方法を 紹介しておきます。

まずは pip というツールをインストールして、他のライブラリを簡単にインストールできるようにします。 https://raw.github.com/pypa/pip/master/contrib/get-pip.py をダウンロードして保存し、 python get-pip.py で実行します。 これで pip というコマンドを利用できるようになったはずです。 (pip3 という名前になっているかもしれません)

次に、 IPython という便利なインタラクティブシェルをインストールします。

> pip install ipython

これで、コマンドラインから ipython を起動すると、通常の Python の インタラクティブシェルよりも高機能なシェルを利用することができます。

コマンドプロンプトが嫌いな人は、GUIの idle が Python 標準ライブラリに 付属していますし、 Python Tools for Visual Studio を使えば Visual Studio 上で IPython が使えます。

Linux

Linux ではたいていデフォルトで Python がインストールされていますが、 たいていは Python 2 です。 今後は Python 3 が主流になるので、最低でも Python 3.2, できれば Python 3.3 をインストールする必要があります。

Ubuntu 13.04 など Python 3.3 を提供しているディストリビューションでは、 root で、 Debian 系であれば apt-get install python3-dev RedHat系であれば yum install python3-devel を実行してください。

ディストリビューションが Python 3.3 以上を提供していない場合は、 install-from-source を参照してください。

次に、システムの Python に setuptools, pip, virtualenv をインストールします。

$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo /usr/bin/python3 get-pip.py

virtualenv を使ってシステムのPythonと独立した仮想環境を構築します。 次の例では、 $HOME/local/python3 以下にインストールします。

$ /usr/local/bin/virtualenv-3.3 $HOME/local/python3
$ source $HOME/local/python3/bin/activate
(python) $

これで、 python を実行すると、 $HOME/local/python/bin/python が 実行されるようになります。 最後の source をしている行が仮想環境に 入るコマンドで、仮想環境から出るには deactivate というコマンドを使います。

ついでに ipython も入れておきましょう。

(python) $ pip install ipython

これで、 $HOME/local/python3 以下の独立した環境に ipython がインストール されました。独立した環境を作ることで、新しいバージョンのライブラリを インストールしたら他のプログラムが動かなくなるなどの事故を避けることができます。

ソースからインストール

Python 3.3.2 を $HOME/local/python-3.3 にインストールする手順です。

$ wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.xz
$ tar xf Python-3.3.2.tar.xz
$ cd Python-3.3.2
$ ./configure --prefix=$HOME/local/python-3.3
$ make -j4
$ make install

make したあと、ビルドできなかった標準ライブラリが表示されます。

sqlite がビルドされなかったら libsqlite-dev をインストールする、 readline がビルドされなかったら libreadline-dev をインストールするなど、 必要そうなライブラリがビルドされなかった場合はそのビルドに必要な パッケージを apt-get などでインストールしましょう。

bdb などはほとんど使いませんし、 tk もサーバー上では必要ないでしょう。

Mac

Homebrew か MacPorts で Python3 をインストールしてください。 あとは Linux とだいたい同じです。

インタラクティブシェルを使う

python

コマンドプロンプトで python というコマンドを実行すると、 Python 標準のインタラクティブシェルが起動します。

>>> 2+3
5
>>> if 1 < 2:
...     print(3)
...
3

>>> は通常のプロンプトで、複数行の入力をする場合には2行目以降の プロンプトとして ... が表示されます。プロンプトが無い部分は出力です。 上の例では、 5 はインタラクティブシェルが実行結果を表示していて、 3print 関数が表示しているという違いがあります。

インタラクティブシェルが結果を表示してくれるのは、実行結果の値が None (php では null に相当) で無い時です。

このインタラクティブシェルはそのままでは補完などの機能を持っていませんが、 http://docs.python.jp/3/library/rlcompleter.html に書いてある設定を することで TAB キーによる補完ができるようになります。

インタラクティブシェルから help(obj) という関数を実行すると、 obj のドキュメントを表示してくれます。

>>> help(sum)
Help on built-in function sum in module builtins:

sum(...)
    sum(iterable[, start]) -> value

    Returns the sum of an iterable of numbers (NOT strings) plus the value
    of parameter 'start' (which defaults to 0).  When the iterable is
    empty, returns start.

ipython

ipython を使うと、標準で補完ができる他にも、いろいろ便利な拡張がされています。 よく使うものを紹介しておきます。

help(obj) の代わりに obj? でドキュメントを読めます。さらに obj?? で、可能であればソースコードが表示されます。

複数行のコードをインタラクティブシェル上で編集するのは面倒ですが、 %ed ファイル名 というコマンドを実行するとエディタが立ち上がり、そこでコードを書いて保存し エディタを終了するとその内容が実行されます。 書き間違ってもファイルが残っていれば再編集できます。ファイル名を省略した 場合はテンポラリファイルが利用されます。

%time 何かコード で、コードを複数回実行して時間を計測してくれます。

!ls のようにしてOSのコマンドを実行することができます。 x = !ls とすると その出力を取り込んで利用することもできます。

bpython

bpython は curses ベースのインタラクティブシェルです。

ipython に比べると、 . をタイプした瞬間に候補を表示してくれたり、関数呼び出しを タイプしている時にその関数のヘルプをポップアップしてくれたりと、高機能なIDEが 持っているようなサポート機能をターミナル上で使うことができます。

ただし、 Windows で curses を動かすのは面倒なのでおすすめしません。 開発も ipython ほど活発ではありません。

スクリプトを書く

Python のスクリプトファイルの拡張子には .py を使います。 次のコードは Python スクリプトの例です。

#!/usr/bin/env python3

for i in range(10):
   print(i)

1行目は shebang で、Unix系のOSではこれを書いて実行権を設定していると、 python filename.py の代わりに ./filename.py で実行できます。

Python 2 との互換性

先ほどのコードを、 Python 2 でも動くようにするには、次のように書きます。

#!/usr/bin/env python
# coding: utf-8
from __future__ import print_function, division, absolute_import

for i in range(10):
   print(i)

2行目はエンコード指定で、ここでは utf-8 を利用することを指定しています。 これをしておかないと、コメントを含めて、すべて ASCII 文字で書かないと いけなくなります。 (Python 3 では標準で utf-8 になります)

3行目は特殊な機能で、将来のバージョンの Python の構文を先取りする宣言です。 Python 2 でもこれを使って一部 Python 3 の非互換な構文が使えます。

print_functionprint を通常の関数にします。 (Python 2 では print は文で、 print i のように書きました)

division は、 3 / 2 が (Python 2 の仕様である) 1 ではなく 1.5 になります。 (小数点以下を切り捨てる除算の演算子として // を使うことができます。)

ただし、かんたんなスクリプトは簡単に互換性を持って書くことができますが、 複雑になってくると独特なテクニックが必要になりますので、おすすめしません。