「Python」の版間の差分
(一部同期) |
|||
18行目: | 18行目: | ||
== インストール == |
== インストール == |
||
− | |||
− | [[公式リポジトリ]]にある {{Pkg|python}} や {{Pkg|python2}} パッケージを[[インストール]]してください。 |
||
=== Python 3 === |
=== Python 3 === |
||
28行目: | 26行目: | ||
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。 |
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。 |
||
− | |||
− | virtualenv で新しいプロジェクトを開始するには以下を実行します: |
||
− | |||
− | $ python -m venv newproj |
||
− | $ source newproj/bin/activate |
||
− | (newproj)$ pip install <dependency> |
||
=== Python 2 === |
=== Python 2 === |
||
55行目: | 47行目: | ||
$ python2 ''myScript.py'' |
$ python2 ''myScript.py'' |
||
+ | 最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが {{ic|#!/usr/bin/env python}} を使っている場合のみ動作し、{{ic|#!/usr/bin/python}} を使っている場合は動作しません。このトリックは {{ic|env}} が {{ic|PATH}} 変数内の最初に一致したエントリを探すことに依存しています。 |
||
− | Finally, you may not be able to control the script calls, but there is a way to trick the environment. It only works if the scripts use {{ic|#!/usr/bin/env python}}. It will not work with {{ic|#!/usr/bin/python}}. This trick relies on {{ic|env}} searching for the first corresponding entry in the {{ic|PATH}} variable. |
||
まずダミーディレクトリを作成: |
まずダミーディレクトリを作成: |
||
62行目: | 54行目: | ||
$ ln -s /usr/bin/python2 ~/bin/python |
$ ln -s /usr/bin/python2 ~/bin/python |
||
$ ln -s /usr/bin/python2-config ~/bin/python-config |
$ ln -s /usr/bin/python2-config ~/bin/python-config |
||
+ | 最後にあなたの {{ic|PATH}} 変数の''最初に''新しいディレクトリを追加してください: |
||
− | Finally put the new folder ''at the beginning'' of your {{ic|PATH}} variable: |
||
$ export PATH=~/bin:$PATH |
$ export PATH=~/bin:$PATH |
||
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}} |
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}} |
||
+ | {{ic|env}} によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください: |
||
− | To check which python interpreter is being used by {{ic|env}}, use the following command: |
||
$ which python |
$ which python |
||
− | スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[ |
+ | スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。 |
+ | == 昔のバージョン == |
||
− | まず、{{Pkg|python2-virtualenv}} パッケージを[[インストール]]してください。そして以下のコマンドで VirtualEnv を含むディレクトリを作成します: |
||
− | $ virtualenv2 venv |
||
− | Activate the VirtualEnv, which will update {{ic|PATH}} to point at Python 2. Note that this activation is only active for the current terminal session: |
||
− | $ source venv/bin/activate |
||
− | The desired script should then run using Python 2. |
||
+ | 現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます: |
||
− | == ビルドスクリプトのバージョン問題の対処 == |
||
+ | * {{AUR|python15}}: Python 1.5.2 |
||
+ | * {{AUR|python24}}{{Broken package link|{{aur-mirror|python24}}}}: Python 2.4.6 |
||
+ | * {{AUR|python25}}: Python 2.5.6 |
||
+ | * {{AUR|python26}}: Python 2.6.9 |
||
+ | * {{AUR|python30}}: Python 3.0.1 |
||
+ | * {{AUR|python31}}{{Broken package link|{{aur-mirror|python31}}}}: Python 3.1.5 |
||
+ | * {{AUR|python32}}: Python 3.2.5 |
||
+ | * {{AUR|python33}}: Python 3.3.5 |
||
+ | * {{AUR|python34}}: Python 3.4.3 |
||
+ | 2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。 |
||
− | Many projects' build scripts assume {{ic|python}} to be Python 2, and that would eventually result in an error — typically complaining that {{ic|print 'foo'}} is invalid syntax. Luckily, many of them call {{ic|python}} from the {{ic|PATH}} instead of hardcoding {{ic|#!/usr/bin/python}} in the shebang line, and the Python scripts are all contained within the project tree. So, instead of modifying the build scripts manually, there is an easy workaround. Just create {{ic|/usr/local/bin/python}} with content like this: |
||
+ | 古いバージョンの Python のモジュールやライブラリは {{ic|python<''version without period''>}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 "python26"。 |
||
− | {{hc|/usr/local/bin/python|<nowiki> |
||
− | #!/bin/bash |
||
− | script=$(readlink -f -- "$1") |
||
− | case "$script" in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*) |
||
− | exec python2 "$@" |
||
− | ;; |
||
− | esac |
||
+ | == ウィジェットバインディング == |
||
− | exec python3 "$@" |
||
− | </nowiki>}} |
||
+ | 以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します: |
||
− | Where {{ic|<nowiki>/path/to/project1/*|/path/to/project2/*|/path/to/project3*</nowiki>}} is a list of patterns separated by {{ic|<nowiki>|</nowiki>}} matching all project trees. |
||
+ | * {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}} |
||
+ | * {{App|pyQt|[[Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}} |
||
+ | * {{App|pySide|[[Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}} |
||
+ | * {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{Pkg|pygtk}}}} |
||
+ | * {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}} |
||
+ | * {{App|wxPython|wxWidgets バインディング|http://wxpython.org/|{{Pkg|wxpython}}}} |
||
+ | 以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。 |
||
+ | == Tips and tricks == |
||
− | Don't forget to make it executable: |
||
+ | === IPython === |
||
− | # chmod +x /usr/local/bin/python |
||
+ | [http://ipython.org/ IPython] は Python コマンドラインの強化版です。公式リポジトリでは {{Pkg|ipython}} と {{Pkg|ipython2}} で利用できます。 |
||
+ | IPython notebook を利用したい場合、IPython3 notebook には {{Pkg|jupyter-notebook}}を、IPython2 notebook には {{Pkg|ipython2-notebook}} をインストールしてください。 |
||
+ | $ jupyter notebook |
||
− | Afterwards scripts within the specified project trees will be run with Python 2. |
||
+ | を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。 |
||
− | == Python シェルで補完を表示 == |
||
+ | [http://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。 |
||
− | {{Note|Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}} |
||
+ | |||
+ | === 仮想環境 === |
||
+ | |||
+ | Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。 |
||
+ | |||
+ | 詳細は [[Python VirtualEnv]] を見てください。 |
||
+ | |||
+ | == Python2 シェルで補完を表示 == |
||
+ | |||
+ | {{Note|この項目は Python2 にのみ関連します。Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}} |
||
Python のインタラクティブシェルに以下をコピーしてください: |
Python のインタラクティブシェルに以下をコピーしてください: |
||
111行目: | 120行目: | ||
ソース: [http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html] |
ソース: [http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html] |
||
− | == |
+ | == トラブルシューティング == |
+ | === ビルドスクリプトのバージョン問題の対処 === |
||
+ | Many projects' build scripts assume {{ic|python}} to be Python 2, and that would eventually result in an error — typically complaining that {{ic|print 'foo'}} is invalid syntax. Luckily, many of them call {{ic|python}} from the {{ic|PATH}} instead of hardcoding {{ic|#!/usr/bin/python}} in the shebang line, and the Python scripts are all contained within the project tree. So, instead of modifying the build scripts manually, there is an easy workaround. Just create {{ic|/usr/local/bin/python}} with content like this: |
||
− | 以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します: |
||
− | * {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}} |
||
− | * {{App|pyQt|[[Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}} |
||
− | * {{App|pySide|[[Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}} |
||
− | * {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{Pkg|pygtk}}}} |
||
− | * {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}} |
||
− | * {{App|wxPython|wxWidgets バインディング|http://wxpython.org/|{{Pkg|wxpython}}}} |
||
− | 以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。 |
||
+ | {{hc|/usr/local/bin/python|<nowiki> |
||
− | == 昔のバージョン == |
||
+ | #!/bin/bash |
||
+ | script=$(readlink -f -- "$1") |
||
+ | case "$script" in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*) |
||
+ | exec python2 "$@" |
||
+ | ;; |
||
+ | esac |
||
+ | exec python3 "$@" |
||
− | 現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます: |
||
+ | </nowiki>}} |
||
− | * {{AUR|python15}}: Python 1.5.2 |
||
− | * {{AUR|python24}}: Python 2.4.6 |
||
− | * {{AUR|python25}}: Python 2.5.6 |
||
− | * {{AUR|python26}}: Python 2.6.9 |
||
− | * {{AUR|python30}}: Python 3.0.1 |
||
− | * {{AUR|python31}}: Python 3.1.5 |
||
− | * {{AUR|python32}}: Python 3.2.5 |
||
− | * {{AUR|python33}}: Python 3.3.5 |
||
− | * {{AUR|python34}}: Python 3.4.3 |
||
+ | Where {{ic|<nowiki>/path/to/project1/*|/path/to/project2/*|/path/to/project3*</nowiki>}} is a list of patterns separated by {{ic|<nowiki>|</nowiki>}} matching all project trees. |
||
− | 2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。 |
||
+ | Don't forget to make it executable: |
||
− | 古いバージョンの Python のモジュールやライブラリは {{ic|python<''version without period''>}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 "python26"。 |
||
+ | # chmod +x /usr/local/bin/python |
||
− | == Tips and tricks == |
||
+ | Afterwards scripts within the specified project trees will be run with Python 2. |
||
− | [http://ipython.org/ IPython] は Python コマンドラインの強化版です。公式リポジトリでは {{Pkg|ipython}} と {{Pkg|ipython2}} で利用できます。 |
||
− | |||
− | [http://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。 |
||
== 参照 == |
== 参照 == |
||
− | * [http://shop.oreilly.com/product/9780596158071.do Learning Python |
+ | * [http://shop.oreilly.com/product/9780596158071.do Learning Python, 4th edition] |
− | * [http://www.diveintopython.net/ Dive Into Python] |
+ | * [http://www.diveintopython.net/ Dive Into Python], [http://getpython3.com/diveintopython3/ Dive Into Python3] |
− | * [http://www.swaroopch.com/notes/Python A Byte of Python] |
+ | * [http://www.swaroopch.com/notes/Python A Byte of Python] |
− | * [http://learnpythonthehardway.org Learn Python The Hard Way] |
+ | * [http://learnpythonthehardway.org Learn Python The Hard Way] |
− | * [http://learnpython.org Learn Python] |
+ | * [http://learnpython.org Learn Python] |
− | * [http://stephensugden.com/crash_into_python/ Crash into Python] |
+ | * [http://stephensugden.com/crash_into_python/ Crash into Python] (他のプログラミング言語に慣れていることを前提としてます) |
− | * [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame |
+ | * [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame] |
− | * [http://www.greenteapress.com/thinkpython/ Think Python |
+ | * [http://www.greenteapress.com/thinkpython/ Think Python] |
− | * [https://pythonspot.com Pythonspot] |
+ | * [https://pythonspot.com Pythonspot] |
2016年10月20日 (木) 02:36時点における版
Wikipedia より:
- Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。
- Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。
目次
インストール
Python 3
Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、Python2orPython3 や Dive into Python 3 の 章 を見て下さい。
最新版の Python 3 をインストールするには、公式リポジトリから python パッケージをインストールしてください。
最新の RC/ベータ版をソースからビルドしたいときは、Python Downloads を訪れて下さい。Arch User Repository に PKGBUILD も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) /usr/local/bin/python3.x
にインストールされるので注意してください。
Python 2
最新版の Python 2 をインストールするには、公式リポジトリから python2 パッケージをインストールしてください。
Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは python2
を指定する必要があります。
Python 2 を必要とするプログラムでは Python 3 の /usr/bin/python
ではなく /usr/bin/python2
を指定する必要があります。
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。
一番最初の行は以下のどちらかになっています:
#!/usr/bin/env python
または:
#!/usr/bin/python
どちらにしても、python
を python2
に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。
スクリプトを変更せずに python2 を強制的に使用させる方法として python2
で明示的にプログラムを呼び出すという方法もあります、例:
$ python2 myScript.py
最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが #!/usr/bin/env python
を使っている場合のみ動作し、#!/usr/bin/python
を使っている場合は動作しません。このトリックは env
が PATH
変数内の最初に一致したエントリを探すことに依存しています。
まずダミーディレクトリを作成:
$ mkdir ~/bin
そして python
から python2 のシンボリックリンクと、設定スクリプトをディレクトリに追加:
$ ln -s /usr/bin/python2 ~/bin/python $ ln -s /usr/bin/python2-config ~/bin/python-config
最後にあなたの PATH
変数の最初に新しいディレクトリを追加してください:
$ export PATH=~/bin:$PATH
env
によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください:
$ which python
スクリプトによって呼び出される #!/usr/bin/env python
を使用して環境を変更する別の方法として #仮想環境 を使うものがあります。
昔のバージョン
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、AUR から昔のバージョンの Python をインストールすることができます:
- python15AUR: Python 1.5.2
- python24AUR[リンク切れ: アーカイブ: aur-mirror]: Python 2.4.6
- python25AUR: Python 2.5.6
- python26AUR: Python 2.6.9
- python30AUR: Python 3.0.1
- python31AUR[リンク切れ: アーカイブ: aur-mirror]: Python 3.1.5
- python32AUR: Python 3.2.5
- python33AUR: Python 3.3.5
- python34AUR: Python 3.4.3
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。
古いバージョンの Python のモジュールやライブラリは python<version without period>
で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 "python26"。
ウィジェットバインディング
以下のウィジェットツールキットのバインディングが存在します:
- TkInter — Tk バインディング
- http://wiki.python.org/moin/TkInter || 標準モジュール
- pyQt — Qt バインディング
- http://www.riverbankcomputing.co.uk/software/pyqt/intro || python2-pyqt4 python2-pyqt5 python-pyqt4 python-pyqt5
- pySide — Qt バインディング
- pyGTK — GTK+ 2 バインディング
- PyGObject — GObject Introspection による GTK+ 2/3 バインディング
- https://wiki.gnome.org/PyGObject/ || python2-gobject2 python2-gobject python-gobject2 python-gobject
- wxPython — wxWidgets バインディング
以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。
Tips and tricks
IPython
IPython は Python コマンドラインの強化版です。公式リポジトリでは ipython と ipython2 で利用できます。 IPython notebook を利用したい場合、IPython3 notebook には jupyter-notebookを、IPython2 notebook には ipython2-notebook をインストールしてください。
$ jupyter notebook
を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。
bpython は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは bpython と bpython2 で利用できます。
仮想環境
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。
詳細は Python VirtualEnv を見てください。
Python2 シェルで補完を表示
Python のインタラクティブシェルに以下をコピーしてください:
/usr/bin/python
import rlcompleter import readline readline.parse_and_bind("tab: complete")
ソース: [1]
トラブルシューティング
ビルドスクリプトのバージョン問題の対処
Many projects' build scripts assume python
to be Python 2, and that would eventually result in an error — typically complaining that print 'foo'
is invalid syntax. Luckily, many of them call python
from the PATH
instead of hardcoding #!/usr/bin/python
in the shebang line, and the Python scripts are all contained within the project tree. So, instead of modifying the build scripts manually, there is an easy workaround. Just create /usr/local/bin/python
with content like this:
/usr/local/bin/python
#!/bin/bash script=$(readlink -f -- "$1") case "$script" in (/path/to/project1/*|/path/to/project2/*|/path/to/project3*) exec python2 "$@" ;; esac exec python3 "$@"
Where /path/to/project1/*|/path/to/project2/*|/path/to/project3*
is a list of patterns separated by |
matching all project trees.
Don't forget to make it executable:
# chmod +x /usr/local/bin/python
Afterwards scripts within the specified project trees will be run with Python 2.