Python (日本語) - ArchWiki

# Python (日本語)

関連記事

- Python パッケージガイドライン
- Python VirtualEnv
- mod_wsgi

Wikipedia より:

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

## インストール

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

### 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` にインストールされるので注意してください。

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

どちらにしても、`python` を `python2` に変更することでプログラムは 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 won't work with `#!/usr/bin/python`. This trick relies on `env` searching for the first corresponding entry in the PATH variable. First create a dummy folder.

    $ mkdir ~/bin

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-config ~/bin/python-config

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

    $ export PATH=~/bin:$PATH

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 `env`, use the following command:

    $ which python

A similar approach in tricking the environment, which also relies on `#!/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 `$PATH` will be the one the Virtualenv was installed with. Therefore, if the Virtualenv is installed with Python 2, `python` will refer to Python 2. To start, install python2-virtualenv.

Then create the Virtualenv.

    $ virtualenv2 venv # Creates a directory, venv/, containing the Virtualenv

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` in 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 のインタラクティブシェルに以下をコピーしてください:

    /usr/bin/python

    import rlcompleter
    import readline
    readline.parse_and_bind("tab: complete")

ソース

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

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

- 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 バインディング

  http://www.pyside.org/ || python2-pyside python-pyside

- pyGTK — GTK+ 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 をインストールすることができます:

- python15: Python 1.5.2
- python16[broken link: package not found]: Python 1.6.1
- python24: Python 2.4.6
- python25: Python 2.5.6
- python26: Python 2.6.9
- python30: Python 3.0.1
- python31: Python 3.1.5
- python32: Python 3.2.5
- python33: Python 3.3.5

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

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

IPython is a enhanced Python command line available in the official repositories as ipython and ipython2.

## 参照

- Learning Python is one of the most comprehensive, up to date, and well-written books on Python available today.
- Dive Into Python is an excellent (free) resource, but perhaps for more advanced readers and has been updated for Python 3.
- A Byte of Python is a book suitable for users new to Python (and scripting in general).
- Learn Python The Hard Way the best intro to programming.
- facts.learnpython.org nice site to learn 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.
- Beginning Game Development with Python and Pygame: From Novice to Professional for games

Category:

- Programming language (日本語)