「Python」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
 
(8人の利用者による、間の36版が非表示)
2行目: 2行目:
 
[[de:Python]]
 
[[de:Python]]
 
[[en:Python]]
 
[[en:Python]]
[[zh-CN:Python]]
+
[[pt:Python]]
  +
[[ru:Python]]
  +
[[uk:Python]]
  +
[[zh-hans:Python]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related2|Python Package Guidelines|Python パッケージガイドライン}}
+
{{Related|Python パッケージガイドライン}}
{{Related|Python VirtualEnv}}
+
{{Related|Python/仮想環境}}
 
{{Related|mod_wsgi}}
 
{{Related|mod_wsgi}}
  +
{{Related|Django}}
  +
{{Related|IDE#Python IDEs}}
 
{{Related articles end}}
 
{{Related articles end}}
  +
[https://docs.python.org/3/faq/general.html#what-is-python What is Python?] から:
   
  +
Python はインタプリタ型の対話的なオブジェクト指向プログラミング言語です。モジュール、例外、動的型付け、非常に高度な動的データ型、クラスなどが組み込まれています。また、オブジェクト指向にとどまらず、手続き型プログラミングや関数型プログラミングなど、様々なプログラミングパラダイムをサポートしています。Python は、非常に明快な構文と驚くべきパワーを兼ね備えています。多くのシステムコールやライブラリ、様々なウィンドウシステムへのインタフェースを持ち、C や C++ による拡張が可能です。また、プログラム可能なインターフェースを必要とするアプリケーションのための拡張言語としても使用可能です。Python は Linux や macOS を含む多くの Unix 系 OS や Windows で動作し、移植性に優れています。
[[Wikipedia:ja:Python|Wikipedia]] より:
 
 
:''Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、Cなどの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。''
 
:''Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。''
 
   
 
== インストール ==
 
== インストール ==
   
[[公式ポジト]]にある {{Pkg|python}} や {{Pkg|python2}} パッケージを[[インストール]]してください。
+
Python 3 の最新リリースを提供する {{Pkg|python}} パッケージを [[インストール]] してさい。
   
=== Python 3 ===
+
=== その他のバージョン ===
   
  +
Python の以前および将来のバージョンは [[AUR]] を介して入手でき、現在のバージョンで実行されない古いアプリケーション、他のバージョンで実行することを意図したプログラム、または単なる好奇心のために役立つ場合があります。
Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、[http://wiki.python.org/moin/Python2orPython3 Python2orPython3] や Dive into Python 3 の [http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html 章] を見て下さい。
 
   
  +
* Python 3.13: {{AUR|python313}} プレリリース
最新版の Python 3 をインストールするには、[[公式リポジトリ]]から {{Pkg|python}} パッケージを[[インストール]]してください。
 
  +
* Python 3.12: {{AUR|python312}}
  +
* Python 3.10: {{AUR|python310}}
  +
* Python 3.9: {{AUR|python39}}
  +
* Python 3.8: {{AUR|python38}} ([https://peps.python.org/pep-0569/ メンテナンスされていません])
  +
* Python 3.7: {{AUR|python37}} ([https://peps.python.org/pep-0537/ メンテナンスされていません])
  +
* Python 3.6: {{AUR|python36}} ([https://peps.python.org/pep-0494/ メンテナンスされていません])
  +
* Python 2.7: {{AUR|python2}} ([https://www.python.org/doc/sunset-python-2/ メンテナンスされていません])
   
  +
{{Warning|3.9 より前のバージョンの Python はサポートが終了し、メンテナンスされていません。[https://devguide.python.org/versions/ Python バージョンのステータス] を参照してください。}}
最新の RC/ベータ版をソースからビルドしたいときは、[http://www.python.org/download/ Python Downloads] を訪れて下さい。[[Arch User Repository|Arch User Repository]] に [[PKGBUILD|PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。
 
   
  +
これらの各パッケージは、バージョン番号に基づいて名前が付けられた個別のバイナリをインストールします。たとえば、Python 3.9 の場合は ''python3.9'' であり、システム上で複数のバージョンが共存できるようにします。{{Pkg|pyenv}} を使用して、複数のバージョンの Python を簡単に切り替えることもできます。
virtualenv で新しいプロジェクトを開始するには以下を実行します:
 
   
  +
古いバージョンの Python 用の追加のモジュール/ライブラリは、AUR で {{ic|python<''version without period''>}} を検索することで見つけることができます。たとえば、Python 3.9 モジュールの場合は {{ic|python39}} を検索します。
$ python -m venv newproj
 
$ source newproj/bin/activate
 
(newproj)$ pip install <dependency>
 
   
  +
https://www.python.org/downloads/ ページで、任意のリリースのソースをダウンロードすることもできます。
=== Python 2 ===
 
   
  +
=== 代替実装 ===
最新版の Python 2 をインストールするには、[[公式リポジトリ]]から {{Pkg|python2}} パッケージを[[インストール]]してください。
 
   
  +
{{Pkg|python}} パッケージは、Python のリファレンス実装である [https://github.com/python/cpython CPython] をインストールします。 他にも利用可能な他の実装もあります。これらの実装は通常、古いバージョンの Python に基づいており、CPython との完全な互換性はありません。
Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは {{ic|python2}} を指定する必要があります。
 
   
  +
Arch Linux で利用可能な実装には以下が含まれます:
Python 2 を必要とするプログラムでは Python 3 の {{ic|/usr/bin/python}} ではなく {{ic|/usr/bin/python2}} を指定する必要があります。
 
   
  +
* {{App|[[PyPy]]|Python で書かれた Python 実装。CPython と比較して、速度とメモリ使用量の利点があります。|https://www.pypy.org|{{Pkg|pypy}}, {{Pkg|pypy3}}}}
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。
 
  +
* {{App|Jython|Java で書かれた Python 言語の実装。Python スクリプトを Java プログラムに埋め込んだり、Python プログラムで Java ライブラリを使用したりするために使用できます。|https://www.jython.org/|{{Pkg|jython}}}}
  +
* {{App|micropython|マイクロコントローラー用の Python。これには、Python 標準ライブラリの小さなサブセットが含まれており、マイクロコントローラーおよび制約のある環境で実行するように最適化されています。|https://micropython.org/|{{AUR|micropython}}}}
  +
* {{App|IronPython|[[.NET]] と緊密に統合された Python プログラミング言語の実装。.NET ライブラリを使用でき、.NET プログラムで Python ライブラリを使用できます。|https://ironpython.net|{{AUR|ironpython-git}}}}
   
  +
[[wikipedia:Python_(programming_language)#Implementations|より多くの実装が存在します]] [https://github.com/stackless-dev/stackless/wiki Stackless]、[https://www.pyston.org/ Pyston]、[https://github.com/facebookincubator/cinder Cinder] などの一部] は大規模なテクノロジー企業の内部で使用されています。 他のものは歴史的に注目に値しますが、最も一般的な実装の改善により、もはや維持されていません。
一番最初の行は以下のどちらかになっています:
 
#!/usr/bin/env python
 
または:
 
#!/usr/bin/python
 
   
  +
=== 代替シェル ===
どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。
 
   
  +
{{Pkg|python}} パッケージには、{{ic|python}} コマンドで起動できるインタラクティブな Python shell/REPL が含まれています。 次のシェルも利用できます。
スクリプトを変更せずに python2 を強制的に使用させる方法として python2 で明示的にプログラムを呼び出すという方法もあります、例:
 
{{bc|python2 myScript.py}}
 
   
  +
* {{App|bpython| Python インタープリター用のすばらしいインターフェース。|https://bpython-interpreter.org/|{{Pkg|bpython}}}}
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.
 
  +
* {{App|IPython|強力なインタラクティブ Python シェル。| https://ipython.org/ | {{Pkg|ipython}}}}
First create a dummy folder.
 
  +
* {{App|[[Jupyter]]| IPython を利用した Web ベースの計算アプリケーション。|https://jupyter.org/|{{Pkg|jupyterlab}}、{{Pkg|jupyter-notebook}}}}
$ mkdir ~/bin
 
  +
* {{App|ptpython| [https://github.com/jonathanslenders/python-prompt-toolkit prompt-toolkit] で構築された高度な PythonREPL。|https://github.com/jonathanslenders/ptpython|{{aur|ptpython}}}}
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 {{ic|env}}, use the following command:
 
$ which python
 
   
  +
== パッケージの管理 ==
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}}.
 
   
  +
Arch Linux に Python パッケージをインストールするには、いくつかの方法があります。
Then create the Virtualenv.
 
$ virtualenv2 venv # Creates a directory, venv/, containing the Virtualenv
 
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.
 
   
  +
* [[公式リポジトリ]] と [[AUR]] - Arch のリポジトリにはたくさんの人気パッケージが公開されています。これは [[システムメンテナンス#パッケージマネージャーを使用してソフトウェアをインストールする|推奨される方法]] で、システム全体のパッケージをインストールするのに適しています。
== ビルドスクリプトのバージョン問題の対処 ==
 
  +
* {{App|{{man|1|pip}}| Python の公式パッケージインストーラーです。[https://pypi.org/ Python Package Index] やその他のインデックスから pip を使ってパッケージをインストールできます。|https://pip.pypa.io/|{{Pkg|python-pip}}}}
  +
* {{App|pipx|pip とよく似ていますが、実行するユーザーのために、各アプリケーションとその関連パッケージのための独立した環境を作成し、システムパッケージとの競合を防ぎます。アプリケーションとしてコマンドラインから直接実行できるパッケージに重点を置いています。pipx を使って [https://pypi.org/ Python Package Index] やその他のインデックスからパッケージをインストールできます。|https://pypa.github.io/pipx/|{{Pkg|python-pipx}}}}
   
  +
* {{App|Anaconda|Anaconda はオープンソースのパッケージ管理システムおよび環境管理システムで、もともとは Python プログラム用に作られました。Conda を使って [https://repo.anaconda.com/ Anaconda repositories] からパッケージをインストールできます。|https://docs.conda.io/projects/conda/|{{Aur|anaconda}}}}
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:
 
  +
* {{App|Miniconda|Anaconda の軽量な代替品で、パッケージマネージャーをインストールしますが、デフォルトで科学計算用パッケージをインストールしません。|https://docs.conda.io/en/latest/miniconda.html|{{Aur|miniconda3}}}}
  +
''pip'' を使ってパッケージをインストールする場合、{{ic|/usr}} のシステムパッケージと競合しないように、[[#仮想環境|virtual environment]] を使用することが推奨されます。また、{{ic|pip install --user}} は {{ic|/usr}} の代わりに [https://pip.pypa.io/en/latest/user_guide/#user-installs user scheme] にパッケージをインストールできます。 ''pipx'' と Conda は環境管理をそのワークフローに統合しています。
   
  +
パッケージ管理の公式なベストプラクティスについては、[https://packaging.python.org/ Python Packaging User Guide] を参照してください。
{{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
 
   
  +
歴史的には、''easy_install'' ({{Pkg|python-setuptools}} の一部) は [https://packaging.python.org/glossary/#term-egg Eggs] として配布されたパッケージをインストールするために使われました。''easy_install'' と Eggs は ''pip'' と [https://packaging.python.org/glossary/#term-wheel Wheels] に置き換わりました。詳しくは [https://packaging.python.org/pip_easy_install/#pip-vs-easy-install pip vs easy_install] と [https://packaging.python.org/discussions/wheel-vs-egg Wheel vs Egg] を参照してください。
exec python3 "$@"
 
</nowiki>}}
 
   
  +
{{Note|指定した PyPI パッケージの PKGBUILD を自動的に生成して ''pip'' と ''pacman'' を統合するツールもあります: [[パッケージの作成#PKGBUILD ジェネレーター]] を見て下さい}}
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.
 
   
  +
{{Tip|[https://pipenv.pypa.io pipenv] は [https://github.com/pypa/pipfile Pipfile], ''pip'' と [[virtualenv]] のための単一の CLI を提供します。{{Pkg|python-pipenv}} として提供されています。}}
Don't forget to make it executable:
 
   
  +
== ウィジェットバインディング ==
# chmod +x /usr/local/bin/python
 
   
  +
以下の [[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]] のバインディングが存在します:
Afterwards scripts within the specified project trees will be run with Python 2.
 
   
  +
* {{App|Tkinter|[https://www.tcl.tk/ Tk] GUI ツールキットへの標準の Python インターフェイス。|https://docs.python.org/3/library/tkinter.html|{{Pkg|python}}}}
== Python シェルで補完を表示 ==
 
  +
* {{App|Qt for Python (PySide2)|[[Qt]] 5 の公式 Python バインディング。|https://www.qt.io/qt-for-python|{{Pkg|pyside2}}, {{Pkg|pyside2-tools}}}}
  +
* {{App|Qt for Python (PySide6)|[[Qt]] 6 の公式 Python バインディング。|https://www.qt.io/qt-for-python|{{Pkg|pyside6}}, {{Pkg|pyside6-tools}}}}
  +
* {{App|pyQt|Qt 用の Python バインディングのセット。|https://riverbankcomputing.com/software/pyqt/intro|{{Pkg|python-pyqt5}}, {{Pkg|python-pyqt6}}}}
  +
* {{App|PyGObject|[[GTK]]、[[GStreamer]]、WebKitGTK、GLib、GIO などの GObject ベースのライブラリの Python バインディング。|https://pygobject.readthedocs.io/|{{Pkg|python-gobject}}}}
  +
* {{App|wxPython|[https://www.wxwidgets.org/ wxWidgets] をラップする Python 用のクロスプラットフォーム GUI ツールキット。|https://wxpython.org/|{{Pkg|python-wxpython}}}}
   
  +
これらを Python で使用するには、関連するウィジェットツールキットパッケージもインストールする必要ががあります (たとえば、Tkinter を使用するには {{Pkg|tk}} もインストールする必要があります)
Python のインタラクティブシェルに以下をコピーしてください:
 
{{hc|/usr/bin/python|2=
 
import rlcompleter
 
import readline
 
readline.parse_and_bind("tab: complete")
 
}}
 
[http://algorithmicallyrandom.blogspot.com.es/2009/09/tab-completion-in-python-shell-how-to.html ソース]
 
   
  +
== ヒントとテクニック ==
== ウィジェットバインディング ==
 
   
  +
=== 仮想環境 ===
以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します:
 
* {{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|pySide|[[Qt|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 で使うには、適当なウィジェットキットをインストールする必要があります。
 
   
  +
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。
== 昔のバージョン ==
 
   
  +
詳細は [[Python/仮想環境]] を見てください。
現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューション (例: RHEL 5.x は Python 2.4 が、Ubuntu 12.04 は Python 3.1 が入っています) での Python プログラムの動作をテストするために、[[AUR|AUR]] から昔のバージョンの Python をインストールすることができます:
 
* {{AUR|python15}}: Python 1.5.2
 
* {{AUR|python16}}: Python 1.6.1
 
* {{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
 
   
  +
=== Python シェルでのタブ補完機能 ===
2014年7月現在、上流の Python は Python 2.7, 3.2, 3.3, 3.4 だけのセキュリティフィックスをサポートしています。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。
 
   
  +
[https://docs.python.org/3/tutorial/interactive.html タブ補完] は対話型シェルでデフォルトで利用可能です。 readline completer はグローバル名前空間内の名前のみを補完することに注意してください。{{Pkg|python-jedi}} を使えば、よりリッチなタブ補完を体験できます [https://jedi.readthedocs.io/en/latest/docs/usage.html#tab-completion-in-the-python-shell]
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.
 
   
  +
=== 特定の Python バージョン用にビルドされたパッケージをリストする ===
== Tips and tricks ==
 
   
  +
場合によっては、インストールされているパッケージが特定のバージョンの Python 用にビルドされたものであることを知ると便利です。例えば、
[http://ipython.org/ IPython] is a enhanced Python command line available in the official repositories as {{Pkg|ipython}} and {{Pkg|ipython2}}.
 
  +
  +
$ pacman -Qoq /usr/lib/python3.11
  +
  +
Python バージョン 3.11 用に構築されたすべてのものがリストされます。これは、公式の Python バージョンが更新され、インストールされていない可能性のある Python バージョン用にビルドされているために再構築が必要なパッケージのリストを [[AUR]] から取得したい場合に特に便利です。Python バージョンを更新後 [[# Python のバージョンアップデート後にモジュールが見つからない]] を参照してください。
  +
  +
== トラブルシューティング ==
  +
  +
=== Python のバージョンアップデート後にモジュールが見つからない ===
  +
  +
Python ベースのアプリケーションでは、{{ic|''module_name''}} という名前のインストールされた依存関係に対して、{{ic|''module_name''}} という名前のモジュールが無いと出力するかもしれません。
  +
  +
上記のシナリオは、依存関係がその Python のバージョンで利用できないか、全くインストールされていない場合に起こります。Python のパッケージは、バージョン管理された site-packages ディレクトリ ({{ic|/usr/lib/python''X.Y''/site-packages}} システム全体なら {{ic|~/.local/lib/python''X.Y''/site-packages/}} ユーザ単位なら {{ic|''X.Y'}} は "3.11" といったバージョン) にインストールします。そのため、新しいマイナーバージョンアップがあるたびに、以前の Python バージョンで構築された Python ベースのパッケージを正しく使用するためには、新しい Python バージョンに対して再構築する必要があります。
  +
  +
AUR からインストールされた Python ベースのパッケージを含む、非公式パッケージを再構築するのはユーザーの責任であることに注意してください。[[FAQ#システムの完全アップグレードを実行すると、共有ライブラリの更新は行われるが、それに依存するアプリケーションの更新は行われない場合はどうなりますか?]] を参照してください。
   
 
== 参照 ==
 
== 参照 ==
   
  +
=== オフィシャル ===
* [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].
 
  +
* [https://docs.python.org/ Official Python documentation]
* [http://www.swaroopch.com/notes/Python A Byte of Python] is a book suitable for users new to Python (and scripting in general).
 
  +
* [https://docs.python.org/3/tutorial/index.html Official Python tutorial]
* [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://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://shop.oreilly.com/product/0636920028154.do O'Reilly's Learning Python, 5th edition] ([https://www.oreilly.co.jp/books/9784873113937/ 初めての Python 第3版])
  +
* [http://www.diveintopython.net/ Dive Into Python], [http://getpython3.com/diveintopython3/ Dive Into Python3] ([http://diveintopython3-ja.rdy.jp/ 日本語訳])
  +
* [https://python.swaroopch.com/ A Byte of Python]
  +
* [https://learnpythonthehardway.org/ Learn Python the Hard Way]
  +
* [https://learnpython.org/ Learn Python]
  +
* [https://stephensugden.com/crash_into_python/ Crash into Python] (他のプログラミング言語に慣れていることを前提としてます)
  +
* [https://www.apress.com/book/9781590598726 Beginning Game Development with Python and Pygame]
  +
* [http://www.greenteapress.com/thinkpython/ Think Python] ([http://www.cauldron.sakura.ne.jp/thinkpython/thinkpython/ThinkPython.pdf 日本語訳])
  +
* [https://pythonspot.com Pythonspot Python Tutorials] - 無料のオンライン チュートリアル
  +
* [http://www.techbeamers.com/python-tutorial-step-by-step/ Learn Python Step by Step]
  +
* [https://github.com/vinta/awesome-python awesome-python] - Python フレームワーク・ライブラリ・ソフトウェア・資料の厳選リスト。
  +
* [https://github.com/mahmoud/boltons boltons] - 標準ライブラリで使える構造・レシピ・スニペット。
  +
* [https://www.alphacodingskills.com/python/ Learn Python Basics to Advanced] - Python の基本から上級者向けまでを学ぶ

2024年10月9日 (水) 15:46時点における最新版

関連記事

What is Python? から:

Python はインタプリタ型の対話的なオブジェクト指向プログラミング言語です。モジュール、例外、動的型付け、非常に高度な動的データ型、クラスなどが組み込まれています。また、オブジェクト指向にとどまらず、手続き型プログラミングや関数型プログラミングなど、様々なプログラミングパラダイムをサポートしています。Python は、非常に明快な構文と驚くべきパワーを兼ね備えています。多くのシステムコールやライブラリ、様々なウィンドウシステムへのインタフェースを持ち、C や C++ による拡張が可能です。また、プログラム可能なインターフェースを必要とするアプリケーションのための拡張言語としても使用可能です。Python は Linux や macOS を含む多くの Unix 系 OS や Windows で動作し、移植性に優れています。

インストール

Python 3 の最新リリースを提供する python パッケージを インストール して下さい。

その他のバージョン

Python の以前および将来のバージョンは AUR を介して入手でき、現在のバージョンで実行されない古いアプリケーション、他のバージョンで実行することを意図したプログラム、または単なる好奇心のために役立つ場合があります。

警告: 3.9 より前のバージョンの Python はサポートが終了し、メンテナンスされていません。Python バージョンのステータス を参照してください。

これらの各パッケージは、バージョン番号に基づいて名前が付けられた個別のバイナリをインストールします。たとえば、Python 3.9 の場合は python3.9 であり、システム上で複数のバージョンが共存できるようにします。pyenv を使用して、複数のバージョンの Python を簡単に切り替えることもできます。

古いバージョンの Python 用の追加のモジュール/ライブラリは、AUR で python<version without period> を検索することで見つけることができます。たとえば、Python 3.9 モジュールの場合は python39 を検索します。

https://www.python.org/downloads/ ページで、任意のリリースのソースをダウンロードすることもできます。

代替実装

python パッケージは、Python のリファレンス実装である CPython をインストールします。 他にも利用可能な他の実装もあります。これらの実装は通常、古いバージョンの Python に基づいており、CPython との完全な互換性はありません。

Arch Linux で利用可能な実装には以下が含まれます:

  • PyPy — Python で書かれた Python 実装。CPython と比較して、速度とメモリ使用量の利点があります。
https://www.pypy.org || pypy, pypy3
  • Jython — Java で書かれた Python 言語の実装。Python スクリプトを Java プログラムに埋め込んだり、Python プログラムで Java ライブラリを使用したりするために使用できます。
https://www.jython.org/ || jython
  • micropython — マイクロコントローラー用の Python。これには、Python 標準ライブラリの小さなサブセットが含まれており、マイクロコントローラーおよび制約のある環境で実行するように最適化されています。
https://micropython.org/ || micropythonAUR
  • IronPython.NET と緊密に統合された Python プログラミング言語の実装。.NET ライブラリを使用でき、.NET プログラムで Python ライブラリを使用できます。
https://ironpython.net || ironpython-gitAUR

より多くの実装が存在します StacklessPystonCinder などの一部] は大規模なテクノロジー企業の内部で使用されています。 他のものは歴史的に注目に値しますが、最も一般的な実装の改善により、もはや維持されていません。

代替シェル

python パッケージには、python コマンドで起動できるインタラクティブな Python shell/REPL が含まれています。 次のシェルも利用できます。

  • bpython — Python インタープリター用のすばらしいインターフェース。
https://bpython-interpreter.org/ || bpython
  • IPython — 強力なインタラクティブ Python シェル。
https://ipython.org/ || ipython
  • Jupyter — IPython を利用した Web ベースの計算アプリケーション。
https://jupyter.org/ || jupyterlabjupyter-notebook
https://github.com/jonathanslenders/ptpython || ptpythonAUR

パッケージの管理

Arch Linux に Python パッケージをインストールするには、いくつかの方法があります。

  • 公式リポジトリAUR - Arch のリポジトリにはたくさんの人気パッケージが公開されています。これは 推奨される方法 で、システム全体のパッケージをインストールするのに適しています。
  • pip(1) — Python の公式パッケージインストーラーです。Python Package Index やその他のインデックスから pip を使ってパッケージをインストールできます。
https://pip.pypa.io/ || python-pip
  • pipx — pip とよく似ていますが、実行するユーザーのために、各アプリケーションとその関連パッケージのための独立した環境を作成し、システムパッケージとの競合を防ぎます。アプリケーションとしてコマンドラインから直接実行できるパッケージに重点を置いています。pipx を使って Python Package Index やその他のインデックスからパッケージをインストールできます。
https://pypa.github.io/pipx/ || python-pipx
  • Anaconda — Anaconda はオープンソースのパッケージ管理システムおよび環境管理システムで、もともとは Python プログラム用に作られました。Conda を使って Anaconda repositories からパッケージをインストールできます。
https://docs.conda.io/projects/conda/ || anacondaAUR
  • Miniconda — Anaconda の軽量な代替品で、パッケージマネージャーをインストールしますが、デフォルトで科学計算用パッケージをインストールしません。
https://docs.conda.io/en/latest/miniconda.html || miniconda3AUR

pip を使ってパッケージをインストールする場合、/usr のシステムパッケージと競合しないように、virtual environment を使用することが推奨されます。また、pip install --user/usr の代わりに user scheme にパッケージをインストールできます。 pipx と Conda は環境管理をそのワークフローに統合しています。

パッケージ管理の公式なベストプラクティスについては、Python Packaging User Guide を参照してください。

歴史的には、easy_install (python-setuptools の一部) は Eggs として配布されたパッケージをインストールするために使われました。easy_install と Eggs は pipWheels に置き換わりました。詳しくは pip vs easy_installWheel vs Egg を参照してください。

ノート: 指定した PyPI パッケージの PKGBUILD を自動的に生成して pippacman を統合するツールもあります: パッケージの作成#PKGBUILD ジェネレーター を見て下さい
ヒント: pipenvPipfile, pipvirtualenv のための単一の CLI を提供します。python-pipenv として提供されています。

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

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

  • TkinterTk GUI ツールキットへの標準の Python インターフェイス。
https://docs.python.org/3/library/tkinter.html || python
  • Qt for Python (PySide2)Qt 5 の公式 Python バインディング。
https://www.qt.io/qt-for-python || pyside2, pyside2-tools
  • Qt for Python (PySide6)Qt 6 の公式 Python バインディング。
https://www.qt.io/qt-for-python || pyside6, pyside6-tools
  • pyQt — Qt 用の Python バインディングのセット。
https://riverbankcomputing.com/software/pyqt/intro || python-pyqt5, python-pyqt6
  • PyGObjectGTKGStreamer、WebKitGTK、GLib、GIO などの GObject ベースのライブラリの Python バインディング。
https://pygobject.readthedocs.io/ || python-gobject
  • wxPythonwxWidgets をラップする Python 用のクロスプラットフォーム GUI ツールキット。
https://wxpython.org/ || python-wxpython

これらを Python で使用するには、関連するウィジェットツールキットパッケージもインストールする必要ががあります (たとえば、Tkinter を使用するには tk もインストールする必要があります)

ヒントとテクニック

仮想環境

Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。

詳細は Python/仮想環境 を見てください。

Python シェルでのタブ補完機能

タブ補完 は対話型シェルでデフォルトで利用可能です。 readline completer はグローバル名前空間内の名前のみを補完することに注意してください。python-jedi を使えば、よりリッチなタブ補完を体験できます [1]

特定の Python バージョン用にビルドされたパッケージをリストする

場合によっては、インストールされているパッケージが特定のバージョンの Python 用にビルドされたものであることを知ると便利です。例えば、

$ pacman -Qoq /usr/lib/python3.11

Python バージョン 3.11 用に構築されたすべてのものがリストされます。これは、公式の Python バージョンが更新され、インストールされていない可能性のある Python バージョン用にビルドされているために再構築が必要なパッケージのリストを AUR から取得したい場合に特に便利です。Python バージョンを更新後 # Python のバージョンアップデート後にモジュールが見つからない を参照してください。

トラブルシューティング

Python のバージョンアップデート後にモジュールが見つからない

Python ベースのアプリケーションでは、module_name という名前のインストールされた依存関係に対して、module_name という名前のモジュールが無いと出力するかもしれません。

上記のシナリオは、依存関係がその Python のバージョンで利用できないか、全くインストールされていない場合に起こります。Python のパッケージは、バージョン管理された site-packages ディレクトリ (/usr/lib/pythonX.Y/site-packages システム全体なら ~/.local/lib/pythonX.Y/site-packages/ ユーザ単位なら X.Y' は "3.11" といったバージョン) にインストールします。そのため、新しいマイナーバージョンアップがあるたびに、以前の Python バージョンで構築された Python ベースのパッケージを正しく使用するためには、新しい Python バージョンに対して再構築する必要があります。

AUR からインストールされた Python ベースのパッケージを含む、非公式パッケージを再構築するのはユーザーの責任であることに注意してください。FAQ#システムの完全アップグレードを実行すると、共有ライブラリの更新は行われるが、それに依存するアプリケーションの更新は行われない場合はどうなりますか? を参照してください。

参照

オフィシャル

サードパーティー