「Python」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
2行目: 2行目:
 
[[de:Python]]
 
[[de:Python]]
 
[[en:Python]]
 
[[en:Python]]
  +
[[es:Python]]
  +
[[ko:Python]]
  +
[[ru:Python]]
 
[[zh-CN:Python]]
 
[[zh-CN:Python]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related2|Python Package Guidelines|Python パッケージガイドライン}}
+
{{Related|Python パッケージガイドライン}}
 
{{Related|Python VirtualEnv}}
 
{{Related|Python VirtualEnv}}
 
{{Related|mod_wsgi}}
 
{{Related|mod_wsgi}}
24行目: 27行目:
 
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。
 
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。
   
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository|Arch User Repository]] に [[PKGBUILD|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 で新しいプロジェクトを開始するには以下を実行します:
 
virtualenv で新しいプロジェクトを開始するには以下を実行します:
49行目: 52行目:
 
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。
 
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。
   
スクリプトを変更せずに python2 を強制的に使用させる方法として python2 で明示的にプログラムを呼び出すという方法もあります、例:
+
スクリプトを変更せずに python2 を強制的に使用させる方法として {{ic|python2}} で明示的にプログラムを呼び出すという方法もあります、例:
{{bc|python2 myScript.py}}
+
$ python2 ''myScript.py''
   
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 won't work with {{ic|#!/usr/bin/python}}. This trick relies on {{ic|env}} searching for the first corresponding entry in the PATH variable.
+
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.
  +
First create a dummy folder.
 
  +
まずダミーディレクトリを作成:
 
$ mkdir ~/bin
 
$ mkdir ~/bin
  +
そして {{ic|python}} から ''python2'' のシンボリックリンクと、設定スクリプトをディレクトリに追加:
Then add a symlink 'python' to python2 and the config scripts in it.
 
 
$ 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
Finally put the new folder ''at the beginning'' of your PATH variable.
+
Finally put the new folder ''at the beginning'' of your {{ic|PATH}} variable:
 
$ export PATH=~/bin:$PATH
 
$ export PATH=~/bin:$PATH
  +
{{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}}
Note that this change is not permanent and is only active in the current terminal session.
 
 
To check which python interpreter is being used by {{ic|env}}, use the following command:
 
To check which python interpreter is being used by {{ic|env}}, use the following command:
 
$ which python
 
$ which python
   
  +
スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[Python VirtualEnv]] があります。VirtualEnv が有効になっている場合、{{ic|PATH}} によって示される Python の実行可能ファイルは VirtualEnv をインストールしたファイルになります。従って、Python 2 で VirtualEnv をインストールした場合、{{ic|python}} は Python 2 を参照するようになります。
A similar approach in tricking the environment, which also relies on {{ic|#!/usr/bin/env python}} to be called by the script in question, is to use a [[Virtualenv]]. When a Virtualenv is activated, the Python executable pointed to by {{ic|$PATH}} will be the one the Virtualenv was installed with. Therefore, if the Virtualenv is installed with Python 2, {{ic|python}} will refer to Python 2. To start, [[pacman|install]] {{Pkg|python2-virtualenv}}.
 
   
  +
まず、{{Pkg|python2-virtualenv}} パッケージを[[インストール]]してください。そして以下のコマンドで VirtualEnv を含むディレクトリを作成します:
Then create the Virtualenv.
 
$ virtualenv2 venv # Creates a directory, venv/, containing the 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.
+
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
 
$ source venv/bin/activate
 
The desired script should then run using Python 2.
 
The desired script should then run using Python 2.
74行目: 78行目:
 
== ビルドスクリプトのバージョン問題の対処 ==
 
== ビルドスクリプトのバージョン問題の対処 ==
   
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}} in 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:
+
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:
   
 
{{hc|/usr/local/bin/python|<nowiki>
 
{{hc|/usr/local/bin/python|<nowiki>
96行目: 100行目:
   
 
== Python シェルで補完を表示 ==
 
== Python シェルで補完を表示 ==
  +
  +
{{Note|Python 3.4 から [https://docs.python.org/3/tutorial/interactive.html タブ補完] はデフォルトで有効になっています。}}
   
 
Python のインタラクティブシェルに以下をコピーしてください:
 
Python のインタラクティブシェルに以下をコピーしてください:
103行目: 109行目:
 
readline.parse_and_bind("tab: complete")
 
readline.parse_and_bind("tab: complete")
 
}}
 
}}
[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]
   
 
== ウィジェットバインディング ==
 
== ウィジェットバインディング ==
109行目: 115行目:
 
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:
 
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:
 
* {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}}
 
* {{App|TkInter|Tk バインディング|http://wiki.python.org/moin/TkInter|標準モジュール}}
* {{App|pyQt|[[Qt|Qt]] バインディング|http://www.riverbankcomputing.co.uk/software/pyqt/intro|{{Pkg|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{Pkg|python-pyqt4}} {{Pkg|python-pyqt5}}}}
+
* {{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|Qt]] バインディング|http://www.pyside.org/|{{Pkg|python2-pyside}} {{Pkg|python-pyside}}}}
+
* {{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|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|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject2}} {{Pkg|python-gobject}}}}
118行目: 124行目:
 
== 昔のバージョン ==
 
== 昔のバージョン ==
   
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR|AUR]] から昔のバージョンの Python をインストールすることができます:
+
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます:
 
* {{AUR|python15}}: Python 1.5.2
 
* {{AUR|python15}}: Python 1.5.2
* {{AUR|python16}}: Python 1.6.1
 
 
* {{AUR|python24}}: Python 2.4.6
 
* {{AUR|python24}}: Python 2.4.6
 
* {{AUR|python25}}: Python 2.5.6
 
* {{AUR|python25}}: Python 2.5.6
128行目: 133行目:
 
* {{AUR|python32}}: Python 3.2.5
 
* {{AUR|python32}}: Python 3.2.5
 
* {{AUR|python33}}: Python 3.3.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 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。
 
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。
   
  +
古いバージョンの Python のモジュールやライブラリは {{ic|python<''version without period''>}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 "python26"。
Extra modules/libraries for old versions of Python may be found on the AUR by searching for python(version without decimal), eg searching for "python26" for 2.6 modules.
 
   
 
== Tips and tricks ==
 
== Tips and tricks ==
   
[http://ipython.org/ IPython] is a enhanced Python command line available in the official repositories as {{Pkg|ipython}} and {{Pkg|ipython2}}.
+
[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] is one of the most comprehensive, up to date, and well-written books on Python available today.
 
* [http://shop.oreilly.com/product/9780596158071.do Learning Python] is one of the most comprehensive, up to date, and well-written books on Python available today.
* [http://www.diveintopython.net/ Dive Into Python] is an excellent (free) resource, but perhaps for more advanced readers and [http://diveintopython3.ep.io/ has been updated for Python 3].
+
* [http://www.diveintopython.net/ Dive Into Python] is an excellent (free) resource, but perhaps for more advanced readers and [http://getpython3.com/diveintopython3/ has been updated for Python 3].
 
* [http://www.swaroopch.com/notes/Python A Byte of Python] is a book suitable for users new to Python (and scripting in general).
 
* [http://www.swaroopch.com/notes/Python A Byte of Python] is a book suitable for users new to Python (and scripting in general).
 
* [http://learnpythonthehardway.org Learn Python The Hard Way] the best intro to programming.
 
* [http://learnpythonthehardway.org Learn Python The Hard Way] the best intro to programming.
* [http://facts.learnpython.org facts.learnpython.org] nice site to learn python.
+
* [http://learnpython.org Learn Python] nice site to learn python.
 
* [http://stephensugden.com/crash_into_python/ Crash into Python] Also known as ''Python for Programmers with 3 Hours'', this guide gives experienced developers from other languages a crash course on Python.
 
* [http://stephensugden.com/crash_into_python/ Crash into Python] Also known as ''Python for Programmers with 3 Hours'', this guide gives experienced developers from other languages a crash course on Python.
 
* [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame: From Novice to Professional] for games
 
* [http://www.apress.com/book/view/9781590598726 Beginning Game Development with Python and Pygame: From Novice to Professional] for games
  +
* [http://www.greenteapress.com/thinkpython/ Think Python: How to Think Like a Computer Scientist] A great introduction to Python programming for beginners.
  +
* [https://pythonspot.com Pythonspot] Great Python programming tutorials.

2015年11月8日 (日) 23:51時点における版

関連記事

Wikipedia より:

Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。
Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。

インストール

公式リポジトリにある pythonpython2 パッケージをインストールしてください。

Python 3

Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、Python2orPython3 や Dive into Python 3 の を見て下さい。

最新版の Python 3 をインストールするには、公式リポジトリから python パッケージをインストールしてください。

最新の RC/ベータ版をソースからビルドしたいときは、Python Downloads を訪れて下さい。Arch User RepositoryPKGBUILD も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) /usr/local/bin/python3.x にインストールされるので注意してください。

virtualenv で新しいプロジェクトを開始するには以下を実行します:

$ python -m venv newproj
$ source newproj/bin/activate
(newproj)$ pip install <dependency>

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

どちらにしても、pythonpython2 に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。

スクリプトを変更せずに python2 を強制的に使用させる方法として python2 で明示的にプログラムを呼び出すという方法もあります、例:

$ python2 myScript.py

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 #!/usr/bin/env python. It will not work with #!/usr/bin/python. This trick relies on env searching for the first corresponding entry in the PATH variable.

まずダミーディレクトリを作成:

$ mkdir ~/bin

そして python から python2 のシンボリックリンクと、設定スクリプトをディレクトリに追加:

$ ln -s /usr/bin/python2 ~/bin/python
$ ln -s /usr/bin/python2-config ~/bin/python-config

Finally put the new folder at the beginning of your PATH variable:

$ export PATH=~/bin:$PATH
ノート: 上記のコマンドによる環境変数の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。

To check which python interpreter is being used by env, use the following command:

$ which python

スクリプトによって呼び出される #!/usr/bin/env python を使用して環境を変更する別の方法として Python VirtualEnv があります。VirtualEnv が有効になっている場合、PATH によって示される Python の実行可能ファイルは VirtualEnv をインストールしたファイルになります。従って、Python 2 で VirtualEnv をインストールした場合、python は Python 2 を参照するようになります。

まず、python2-virtualenv パッケージをインストールしてください。そして以下のコマンドで VirtualEnv を含むディレクトリを作成します:

$ virtualenv2 venv

Activate the VirtualEnv, which will update 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.

ビルドスクリプトのバージョン問題の対処

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.

Python シェルで補完を表示

ノート: Python 3.4 から タブ補完 はデフォルトで有効になっています。

Python のインタラクティブシェルに以下をコピーしてください:

/usr/bin/python
import rlcompleter
import readline
readline.parse_and_bind("tab: complete")

ソース: [1]

ウィジェットバインディング

以下のウィジェットツールキットのバインディングが存在します:

  • TkInter — Tk バインディング
http://wiki.python.org/moin/TkInter || 標準モジュール
  • pyQtQt バインディング
http://www.riverbankcomputing.co.uk/software/pyqt/intro || python2-pyqt4 python2-pyqt5 python-pyqt4 python-pyqt5
  • pySideQt バインディング
http://www.pyside.org/ || python2-pyside python-pyside
  • pyGTKGTK+ 2 バインディング
http://www.pygtk.org/ || pygtk
  • PyGObject — GObject Introspection による GTK+ 2/3 バインディング
https://wiki.gnome.org/PyGObject/ || python2-gobject2 python2-gobject python-gobject2 python-gobject
  • wxPython — wxWidgets バインディング
http://wxpython.org/ || wxpython

以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。

昔のバージョン

現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、AUR から昔のバージョンの Python をインストールすることができます:

2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。

古いバージョンの Python のモジュールやライブラリは python<version without period> で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 "python26"。

Tips and tricks

IPython は Python コマンドラインの強化版です。公式リポジトリでは ipythonipython2 で利用できます。

bpython は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは bpythonbpython2 で利用できます。

参照