INADA Naoki avatar INADA Naoki committed 5642693

install の Python 3 対応

Comments (0)

Files changed (1)

 
 Windows
 -----------
-http://www.python.org/download/ から、 Python 2.x.y Windows Installer
+http://www.python.org/download/ から、 Python 3.x.y Windows Installer
 と書かれているリンクをクリックして、インストーラーをダウンロードして
 ください。 (x.y にはバージョン番号が入ります)
 
-このインストーラーでインストールすると、 ``C:\\Python2.7`` のような
-ディレクトリに Python がインストールされるので、環境変数の ``PATH`` を
-``C:\\Python2.7`` と ``C:\\Python2.7\\Scripts`` に設定してください。
+このインストーラーでインストールすると、 ``C:\\Python3.3`` のような
+ディレクトリに Python がインストールされます。
+インストール中に "Add python.exe to Path" というオプションを選択できますが、
+Python 本体だけでなく追加のスクリプトも利用するために、
+環境変数 ``PATH`` に
+``C:\\Python3.3`` と ``C:\\Python3.3\\Scripts`` を設定してください。
 
 これで Python 本体のインストールは完了です。
 以降は必須では無いですが、いくつか便利なライブラリのインストール方法を
 
 ::
 
-   > python -m easy_install PyReadline
-   > python -m easy_install IPython
+   > easy_install PyReadline
+   > easy_install IPython
 
 これで、コマンドラインから ``ipython`` を起動すると、通常の Python の
 インタラクティブシェルよりも高機能なシェルを利用することができます。
 
-.. note::
+コマンドプロンプトが嫌いな人は、GUIの ``idle`` が Python 標準ライブラリに
+付属していますし、 `Python Tools for Visual Studio <http://pytools.codeplex.com/>`_
+を使えば Visual Studio 上で IPython が使えます。
 
-   setuptools をインストールしたら easy_install というコマンドが使えるのですが、
-   Windows で install という名前の入った実行ファイルを実行するとUACが起動してしまうので、
-   ``python -m easy_install`` という書き方で回避しています。
 
-コマンドプロンプトが嫌いな人は、GUIから ``ipython`` を利用することもできます。
-その場合、 http://www.riverbankcomputing.co.uk/software/pyqt/download から
-PyQt4 の適切なバージョン (Python 2.7 の 64bit 版の場合は ``PyQt-Py2.7-x64-gpl-*.exe``)
-のインストーラーをダウンロードし、インストールします。そして、 ``Pygments``
-と ``pyzmq`` も ``easy_install`` でインストールします。
+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 以上を提供していない場合は、
+:ref:`install-from-source` を参照してください。
+
+次に、システムの Python に setuptools, pip, virtualenv をインストールします。
 
 ::
 
-   > easy_install Pygments
-   > easy_install pyzmq
+   $ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
+   $ sudo /usr/bin/python3 ez_setup.py
+   $ sudo easy_install-3.3 pip virtualenv
 
-これで、 ``ipython-qtconsole`` コマンドを使って、GUIのインタラクティブシェルを
-利用できるようになりました。
-
-
-Linux
-------
-Linux の場合、ほぼ確実にすでに Python がインストールされています。
-ここでは、システムの Python を壊さないで追加のライブラリを利用できる
-ようにする方法を紹介します。
-
-まずは、システムの Python に、拡張ライブラリをビルドするのに必要な
-ヘッダをインストールしておきます。 Debian 系であれば ``apt-get install python-dev``
-RedHat系であれば ``yum install python-devel`` です。 (root が必要)
-
-次に、 ``virtualenv`` を使ってシステムのPythonと独立した仮想環境を構築します。
-次の例では、 ``$HOME/local/python`` 以下にインストールします。
+``virtualenv`` を使ってシステムのPythonと独立した仮想環境を構築します。
+次の例では、 ``$HOME/local/python3`` 以下にインストールします。
 
 ::
 
-   $ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
-   $ python virtualenv.py --distribute $HOME/local/python
-   $ source $HOME/local/python/bin/activate
+   $ /usr/local/bin/virtualenv-3.3 $HOME/local/python3
+   $ source $HOME/local/python3/bin/activate
    (python) $
 
 これで、 python を実行すると、 ``$HOME/local/python/bin/python`` が
 実行されるようになります。 最後の ``source`` をしている行が仮想環境に
-入るコマンドなので、ターミナルを再起動するたびにこれを実行するのが
-面倒であれば、 ``.bashrc`` などに書いておけばいいかもしれません。
+入るコマンドで、仮想環境から出るには ``deactivate`` というコマンドを使います。
 
 ついでに ``ipython`` も入れておきましょう。
 
 ::
 
-   (python) $ easy_install ipython
+   (python) $ pip install ipython
 
-これで、 ``$HOME/local/python`` 以下の独立した環境に ipython がインストール
+これで、 ``$HOME/local/python3`` 以下の独立した環境に ipython がインストール
 されました。独立した環境を作ることで、新しいバージョンのライブラリを
 インストールしたら他のプログラムが動かなくなるなどの事故を避けることができます。
 
+.. _install-from-source
+
+ソースからインストール
+^^^^^^^^^^^^^^^^^^^^^^
+
+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
 ---
 
 
 .. note::
 
-    ラム: easy_install と pip
+    ラム: easy_install と pip
 
     virtualenv を使うと、 easy_install に加えて pip というツールもインストールされます。
 
    >>> 2+3
    5
    >>> if 1 < 2:
-   ...     print 3
+   ...     print(3)
    ... 
    3
 
 ``>>>`` は通常のプロンプトで、複数行の入力をする場合には2行目以降の
 プロンプトとして ``...`` が表示されます。プロンプトが無い部分は出力です。
 上の例では、 ``5`` はインタラクティブシェルが実行結果を表示していて、
-``3`` は ``print`` が表示しているという違いがあります。
+``3`` は ``print`` 関数が表示しているという違いがあります。
 
-インタラクティブシェルが結果を表示してくれるのは、 ``if`` や ``print``
-のような文ではなく評価結果が何らかの値になるような式を実行して、
-なおかつその値が ``None`` (php では ``null`` に相当) で無い時です。
+インタラクティブシェルが結果を表示してくれるのは、実行結果の値が
+``None`` (php では ``null`` に相当) で無い時です。
 
 このインタラクティブシェルはそのままでは補完などの機能を持っていませんが、
-http://www.python.jp/doc/2.7/library/rlcompleter.html に書いてある設定を
+http://docs.python.jp/3/library/rlcompleter.html に書いてある設定を
 することで TAB キーによる補完ができるようになります。
 
 インタラクティブシェルから ``help(obj)`` という関数を実行すると、
 ::
 
    >>> help(sum)
-   Help on built-in function sum in module __builtin__:
+   Help on built-in function sum in module builtins:
 
    sum(...)
-       sum(sequence[, start]) -> value
+       sum(iterable[, start]) -> value
 
-       Returns the sum of a sequence of numbers (NOT strings) plus the value
-       of parameter 'start' (which defaults to 0).  When the sequence is
+       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.
 
 
 タイプしている時にその関数のヘルプをポップアップしてくれたりと、高機能なIDEが
 持っているようなサポート機能をターミナル上で使うことができます。
 
-ただし、 bpython は curses が使えない Windows では使うことができません。
+ただし、 Windows で curses を動かすのは面倒なのでおすすめしません。
 
 
 スクリプトを書く
 
 ::
 
-   #!/usr/bin/env python
-   # coding: utf-8
-   from __future__ import print_function
+   #!/usr/bin/env python3
 
    for i in range(10):
       print(i)
 1行目は shebang で、Unix系のOSではこれを書いて実行権を設定していると、
 ``python filename.py`` の代わりに ``./filename.py`` で実行できます。
 
-2行目はエンコード指定で、ここでは ``utf-8`` を利用することを指定しています。これをしておかないと、コメントを含めて、すべて ASCII 文字で書かないと
+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 の構文を先取りする宣言です。
-ここでは ``print_function`` を利用していますが、これをすると ``print``
-が文ではなく通常の関数になります。 (Python 3 では標準で ``print`` が関数です)
+Python 2 でもこれを使って一部 Python 3 の非互換な構文が使えます。
 
-``print_function`` の他には、例えば ``from __future__ import division``
-すると、 ``3 / 2`` が ``1`` ではなく ``1.5`` になります。
-この場合でも、小数点以下を切り捨てる除算の演算子として ``//`` を使う
-ことができます。
+``print_function`` は ``print`` を通常の関数にします。
+(Python 2 では print は文で、 ``print i`` のように書きました)
+
+``division`` は、 ``3 / 2`` が (Python 2 の仕様である) ``1`` ではなく ``1.5`` になります。
+(小数点以下を切り捨てる除算の演算子として ``//`` を使うことができます。)
+
+ただし、かんたんなスクリプトは簡単に互換性を持って書くことができますが、
+複雑になってくると独特なテクニックが必要になりますので、おすすめしません。
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.