「Python」の版間の差分
(参照にオフィシャルを追加) |
(→ヒントとテクニック: 同期) |
||
(3人の利用者による、間の16版が非表示) | |||
2行目: | 2行目: | ||
[[de:Python]] |
[[de:Python]] |
||
[[en:Python]] |
[[en:Python]] |
||
− | [[ |
+ | [[pt:Python]] |
− | [[ko:Python]] |
||
[[ru:Python]] |
[[ru:Python]] |
||
+ | [[uk:Python]] |
||
[[zh-hans:Python]] |
[[zh-hans:Python]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
11行目: | 11行目: | ||
{{Related|mod_wsgi}} |
{{Related|mod_wsgi}} |
||
{{Related|Django}} |
{{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++ や Java などの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。 |
||
− | :Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。 |
||
== インストール == |
== インストール == |
||
+ | Python 3 の最新リリースを提供する {{Pkg|python}} パッケージを [[インストール]] して下さい。 |
||
− | === Python 3 === |
||
+ | === その他のバージョン === |
||
− | Python 3 は Python 言語の最新バージョンであり、Python 2 と互換性がありません。大まかには同じですが、細かいところ、特に辞書や文字列などのオブジェクトの扱い方が大幅に変更されており、非推奨になっていた機能が多数削除されています。また、標準ライブラリが目立たないところで再編成されています。大まかな差異については、[https://wiki.python.org/moin/Python2orPython3 Python2orPython3] や Dive into Python 3 の [http://getpython3.com/diveintopython3/porting-code-to-python-3-with-2to3.html 章] を見て下さい。 |
||
+ | Python の以前および将来のバージョンは [[AUR]] を介して入手でき、現在のバージョンで実行されない古いアプリケーション、他のバージョンで実行することを意図したプログラム、または単なる好奇心のために役立つ場合があります。 |
||
− | 最新版の Python 3 をインストールするには、{{Pkg|python}} パッケージを[[インストール]]してください。 |
||
+ | * Python 3.13: {{AUR|python313}} プレリリース |
||
− | 最新の RC/ベータ版をソースからビルドしたいときは、[https://www.python.org/downloads/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。 |
||
+ | * 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 バージョンのステータス] を参照してください。}} |
||
− | === Python 2 === |
||
+ | これらの各パッケージは、バージョン番号に基づいて名前が付けられた個別のバイナリをインストールします。たとえば、Python 3.9 の場合は ''python3.9'' であり、システム上で複数のバージョンが共存できるようにします。{{Pkg|pyenv}} を使用して、複数のバージョンの Python を簡単に切り替えることもできます。 |
||
− | {{Warning|Python 2 に依存したパッケージも残っていますが、Python 2 は2020年以降メンテナンスされません。https://www.python.org/doc/sunset-python-2/}} |
||
+ | 古いバージョンの Python 用の追加のモジュール/ライブラリは、AUR で {{ic|python<''version without period''>}} を検索することで見つけることができます。たとえば、Python 3.9 モジュールの場合は {{ic|python39}} を検索します。 |
||
− | 最新版の Python 2 をインストールするには、{{Pkg|python2}} パッケージを[[インストール]]してください。 |
||
+ | https://www.python.org/downloads/ ページで、任意のリリースのソースをダウンロードすることもできます。 |
||
− | Python 2 は Python 3 と上手く共存することができます。このバージョンを実行するときは {{ic|python2}} を指定する必要があります。 |
||
+ | === 代替実装 === |
||
− | Python 2 を必要とするプログラムでは Python 3 の {{ic|/usr/bin/python}} ではなく {{ic|/usr/bin/python2}} を指定する必要があります。 |
||
+ | {{Pkg|python}} パッケージは、Python のリファレンス実装である [https://github.com/python/cpython CPython] をインストールします。 他にも利用可能な他の実装もあります。これらの実装は通常、古いバージョンの Python に基づいており、CPython との完全な互換性はありません。 |
||
− | それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。 |
||
+ | Arch Linux で利用可能な実装には以下が含まれます: |
||
− | 一番最初の行は以下のどちらかになっています: |
||
− | #!/usr/bin/env python |
||
− | または: |
||
− | #!/usr/bin/python |
||
+ | * {{App|[[PyPy]]|Python で書かれた Python 実装。CPython と比較して、速度とメモリ使用量の利点があります。|https://www.pypy.org|{{Pkg|pypy}}, {{Pkg|pypy3}}}} |
||
− | どちらにしても、{{ic|python}} を {{ic|python2}} に変更することでプログラムは Python 3 ではなく Python 2 を使用するようになります。 |
||
+ | * {{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] などの一部] は大規模なテクノロジー企業の内部で使用されています。 他のものは歴史的に注目に値しますが、最も一般的な実装の改善により、もはや維持されていません。 |
||
− | スクリプトを変更せずに python2 を強制的に使用させる方法として {{ic|python2}} で明示的にプログラムを呼び出すという方法もあります、例: |
||
− | $ python2 ''myScript.py'' |
||
− | |||
− | 最後に、スクリプトの呼び出しを制御できない場合、環境を変更する方法があります。この方法はスクリプトが {{ic|#!/usr/bin/env python}} を使っている場合のみ動作し、{{ic|#!/usr/bin/python}} を使っている場合は動作しません。このトリックは {{ic|env}} が {{ic|PATH}} 変数内の最初に一致したエントリを探すことに依存しています。 |
||
− | |||
− | まずダミーディレクトリを作成: |
||
− | $ mkdir ~/bin |
||
− | そして {{ic|python}} から ''python2'' のシンボリックリンクと、設定スクリプトをディレクトリに追加: |
||
− | $ ln -s /usr/bin/python2 ~/bin/python |
||
− | $ ln -s /usr/bin/python2-config ~/bin/python-config |
||
− | 最後にあなたの {{ic|PATH}} 変数の''最初に''新しいディレクトリを追加してください: |
||
− | $ export PATH=~/bin:$PATH |
||
− | {{Note|上記のコマンドによる[[環境変数]]の変更は永続的ではありません。現在のターミナルセッションでのみ有効です。}} |
||
− | {{ic|env}} によってどの python インタプリタが使われているかを確認するには次のコマンドを使ってください: |
||
− | $ which python |
||
− | |||
− | スクリプトによって呼び出される {{ic|#!/usr/bin/env python}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。 |
||
− | |||
− | === 代替実装 === |
||
− | |||
− | {{Pkg|python}} パッケージは、 Python のリファレンス実装である [https://github.com/python/cpython CPython] をインストールします。ただし、他の実装も使用できます。 |
||
− | |||
− | * [[PyPy]] は、JIT コンパイラを利用した Python 2.7/3.6/3.7 実装です。これは一般に高速でメモリ消費も少ないですが、 CPython と完全に互換性があるわけではありません(ただし、大部分のパッケージとコードは変更なしで動作します。) |
||
− | * [http://www.jython.org/ Jython] は、 Java で構築された Python 2.7 の実装です。 Python と Java コードの統合は簡単ですが、CPython ライブラリーとの完全な互換性はありません。大規模な Java アプリケーションでスクリプト言語として Python を提供するためによく使用されます。 |
||
− | * [http://ironpython.net/ IronPython] は、 Python 2.7 に組み込まれた実装です。 Jython と同じ目標を達成していますが、。NET 言語 (C# や VB のような) |
||
− | * [https://micropython.org/ MicroPython] は、マイクロコントローラやその他の組み込み環境 (UEFI のように) を対象とした Python 3.4 の限定的な実装です。 [http://docs.micropython.org/en/latest/pyboard/genrst/index.html 構文の小さな変更と非常に限定された標準ライブラリ] のため、ほとんどの標準パッケージと互換性がありません。 REPL が組み込まれた組み込み環境でのプロトタイピングによく使用されます。 |
||
− | * [[wikipedia:Python_(programming_language)#Implementations|より多くの実装が利用可能]] ただし、最も一般的なものが改良されたため、ほとんどのものはメンテナンスされていません。 |
||
=== 代替シェル === |
=== 代替シェル === |
||
80行目: | 60行目: | ||
* {{App|bpython| Python インタープリター用のすばらしいインターフェース。|https://bpython-interpreter.org/|{{Pkg|bpython}}}} |
* {{App|bpython| Python インタープリター用のすばらしいインターフェース。|https://bpython-interpreter.org/|{{Pkg|bpython}}}} |
||
− | * {{App|IPython|強力なインタラクティブ Python シェル。| https://ipython.org/ | {{Pkg |
+ | * {{App|IPython|強力なインタラクティブ Python シェル。| https://ipython.org/ | {{Pkg|ipython}}}} |
* {{App|[[Jupyter]]| IPython を利用した Web ベースの計算アプリケーション。|https://jupyter.org/|{{Pkg|jupyterlab}}、{{Pkg|jupyter-notebook}}}} |
* {{App|[[Jupyter]]| IPython を利用した Web ベースの計算アプリケーション。|https://jupyter.org/|{{Pkg|jupyterlab}}、{{Pkg|jupyter-notebook}}}} |
||
* {{App|ptpython| [https://github.com/jonathanslenders/python-prompt-toolkit prompt-toolkit] で構築された高度な PythonREPL。|https://github.com/jonathanslenders/ptpython|{{aur|ptpython}}}} |
* {{App|ptpython| [https://github.com/jonathanslenders/python-prompt-toolkit prompt-toolkit] で構築された高度な PythonREPL。|https://github.com/jonathanslenders/ptpython|{{aur|ptpython}}}} |
||
− | + | == パッケージの管理 == |
|
+ | Arch Linux に Python パッケージをインストールするには、いくつかの方法があります。 |
||
− | {{warning|2014年から Python のバージョン 2.7 と 3.4 以前はアップデートがもはやされていません。セキュリティパッチすらありません。インターネットを使用するアプリケーションや信頼できないコードで古いバージョンを使用するのは危険なので推奨されません。}} |
||
+ | * [[公式リポジトリ]] と [[AUR]] - Arch のリポジトリにはたくさんの人気パッケージが公開されています。これは [[システムメンテナンス#パッケージマネージャーを使用してソフトウェアをインストールする|推奨される方法]] で、システム全体のパッケージをインストールするのに適しています。 |
||
− | 現在のバージョンの Python で動作しないアプリケーションのような、過去の遺物を使用したり、古いバージョンの Python が入っているディストリビューションでの Python プログラムの動作をテストするために、[[AUR]] から昔のバージョンの Python をインストールすることができます: |
||
+ | * {{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}}}} |
||
− | * Python 3.5: {{AUR|python35}} |
||
+ | * {{App|Miniconda|Anaconda の軽量な代替品で、パッケージマネージャーをインストールしますが、デフォルトで科学計算用パッケージをインストールしません。|https://docs.conda.io/en/latest/miniconda.html|{{Aur|miniconda3}}}} |
||
− | * Python 3.4: {{AUR|python34}} |
||
+ | ''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 は環境管理をそのワークフローに統合しています。 |
||
− | * Python 2.6: {{AUR|python26}} |
||
− | * Python 2.5: {{AUR|python25}} |
||
− | * Python 1.5: {{AUR|python15}} |
||
+ | パッケージ管理の公式なベストプラクティスについては、[https://packaging.python.org/ Python Packaging User Guide] を参照してください。 |
||
− | 古いバージョンの Python のモジュールやライブラリは {{ic|python<''version without period''>}} で AUR を検索することで見つけられます。例: 2.6 のモジュールを検索する場合 "python26"。 |
||
+ | 歴史的には、''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] を参照してください。 |
||
− | == パッケージの管理 == |
||
+ | {{Note|指定した PyPI パッケージの PKGBUILD を自動的に生成して ''pip'' と ''pacman'' を統合するツールもあります: [[パッケージの作成#PKGBUILD ジェネレーター]] を見て下さい}} |
||
− | [[公式リポジトリ]]や [[AUR]] には膨大な Python パッケージが収められていますが、Python エコシステムには [https://pypi.python.org/ PyPI] (Python Package Index) を使用する独自のパッケージマネージャが存在します。 |
||
+ | {{Tip|[https://pipenv.pypa.io pipenv] は [https://github.com/pypa/pipfile Pipfile], ''pip'' と [[virtualenv]] のための単一の CLI を提供します。{{Pkg|python-pipenv}} として提供されています。}} |
||
− | * {{App|pip|Python パッケージをインストールするための PyPA ツール。|https://pip.pypa.io/|{{Pkg|python-pip}}, {{Pkg|python2-pip}}}} |
||
− | * {{App|setuptools|Python パッケージを簡単にダウンロード・ビルド・インストール・アップグレード・アンインストール。|https://setuptools.readthedocs.io/|{{Pkg|python-setuptools}}, {{Pkg|python2-setuptools}}}} |
||
+ | == ウィジェットバインディング == |
||
− | 上記のツールの簡単な歴史や比較は [https://packaging.python.org/pip_easy_install/#pip-vs-easy-install pip vs easy_install] を見てください。 |
||
+ | 以下の [[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]] のバインディングが存在します: |
||
− | Python のパッケージ管理におけるベストプラクティスは権威筋の [https://packaging.python.org/ こちら] の資料に詳しく載っています。 |
||
+ | * {{App|Tkinter|[https://www.tcl.tk/ Tk] GUI ツールキットへの標準の Python インターフェイス。|https://docs.python.org/3/library/tkinter.html|{{Pkg|python}}}} |
||
− | {{Note|pip を pacman に統合して pip パッケージの PKGBUILD を自動的に生成するツールも存在します: {{AUR|pipman-git}}, {{AUR|pip2arch-git}}。}} |
||
+ | * {{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}} もインストールする必要があります) |
||
− | == ウィジェットバインディング == |
||
− | |||
− | 以下の[[Wikipedia:ja:ウィジェット・ツールキット|ウィジェットツールキット]]のバインディングが存在します: |
||
− | * {{App|TkInter|Tk バインディング|https://wiki.python.org/moin/TkInter|標準モジュール}} |
||
− | * {{App|pyQt|[[Qt]] バインディング|https://riverbankcomputing.com/software/pyqt/intro|{{AUR|python2-pyqt4}} {{Pkg|python2-pyqt5}} {{AUR|python-pyqt4}} {{Pkg|python-pyqt5}}}} |
||
− | * {{App|pySide|[[Qt]] バインディング|https://wiki.qt.io/PySide|{{AUR|python2-pyside}} {{AUR|python-pyside}}}} |
||
− | * {{App|pyGTK|[[GTK+|GTK+ 2]] バインディング|http://www.pygtk.org/|{{AUR|pygtk}}}} |
||
− | * {{App|PyGObject|GObject Introspection による [[GTK+|GTK+ 2/3]] バインディング|https://wiki.gnome.org/PyGObject/|{{Pkg|python2-gobject2}} {{Pkg|python2-gobject}} {{Pkg|python-gobject}}}} |
||
− | * {{App|wxPython|wxWidgets バインディング|https://wxpython.org/|{{Pkg|python2-wxpython3}} {{Pkg|python-wxpython}}}} |
||
− | 以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。 |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
− | |||
− | === IPython === |
||
− | [http://ipython.org/ IPython] は Python コマンドラインの強化版です。{{Pkg|ipython}} と {{Pkg|ipython2}} パッケージで利用できます。IPython notebook を利用したい場合、IPython3 notebook には {{Pkg|jupyter-notebook}} を、IPython2 notebook には {{Pkg|ipython2-notebook}} をインストールしてください。 |
||
− | |||
− | $ jupyter notebook |
||
− | |||
− | を実行することでブラウザを開き IPython カーネルを実行することができます。ブラウザ上で notebook を作成するときに python のバージョンを指定することができます。 |
||
− | |||
− | [https://bpython-interpreter.org/ bpython] は Python インタプリタの ncurses インターフェイスです。公式リポジトリでは {{Pkg|bpython}} と {{Pkg|bpython2}} で利用できます。 |
||
=== 仮想環境 === |
=== 仮想環境 === |
||
139行目: | 105行目: | ||
詳細は [[Python/仮想環境]] を見てください。 |
詳細は [[Python/仮想環境]] を見てください。 |
||
− | == |
+ | === Python シェルでのタブ補完機能 === |
− | + | [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] |
|
+ | === 特定の Python バージョン用にビルドされたパッケージをリストする === |
||
− | Python のインタラクティブシェルに以下をコピーしてください: |
||
− | {{hc|/usr/bin/python2|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] |
||
+ | 場合によっては、インストールされているパッケージが特定のバージョンの Python 用にビルドされたものであることを知ると便利です。例えば、 |
||
− | == トラブルシューティング == |
||
− | === ビルドスクリプトのバージョン問題の対処 === |
||
+ | $ pacman -Qoq /usr/lib/python3.11 |
||
− | 多くのプロジェクトのビルドスクリプトは {{ic|python}} は Python 2 だと仮定していて、このことはエラーを起こします。典型的には {{ic|print 'foo'}} は無効な文法であるというエラーが出ます。幸いにも多くの場合、シバン行にハードコードされた {{ic|#!/usr/bin/python}} ではなく {{ic|PATH}} から {{ic|python}} を呼び出していて、Python スクリプトはすべてプロジェクトツリーに含まれています。したがって、ビルドスクリプトを手動で変更する代わりに簡単なワークアラウンドがあります。以下のような {{ic|/usr/local/bin/python}} ファイルを作成してください: |
||
+ | Python バージョン 3.11 用に構築されたすべてのものがリストされます。これは、公式の Python バージョンが更新され、インストールされていない可能性のある Python バージョン用にビルドされているために再構築が必要なパッケージのリストを [[AUR]] から取得したい場合に特に便利です。Python バージョンを更新後 [[# 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 "$@" |
||
− | </nowiki>}} |
||
+ | === Python のバージョンアップデート後にモジュールが見つからない === |
||
− | ここで {{ic|<nowiki>/path/to/project1/*|/path/to/project2/*|/path/to/project3*</nowiki>}} は {{ic|<nowiki>|</nowiki>}} によって区切られた Python 2 で動作させる必要のあるすべてのプロジェクトツリーです。 |
||
+ | 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 バージョンに対して再構築する必要があります。 |
||
− | # chmod +x /usr/local/bin/python |
||
+ | AUR からインストールされた Python ベースのパッケージを含む、非公式パッケージを再構築するのはユーザーの責任であることに注意してください。[[FAQ#システムの完全アップグレードを実行すると、共有ライブラリの更新は行われるが、それに依存するアプリケーションの更新は行われない場合はどうなりますか?]] を参照してください。 |
||
− | その後指定したプロジェクトツリー内のスクリプトは Python 2 で動作します。 |
||
== 参照 == |
== 参照 == |
||
182行目: | 134行目: | ||
* [https://docs.python.org/3/tutorial/index.html Official Python tutorial] |
* [https://docs.python.org/3/tutorial/index.html Official Python tutorial] |
||
− | === サードパーティ === |
+ | === サードパーティー === |
* [http://shop.oreilly.com/product/0636920028154.do O'Reilly's Learning Python, 5th edition] ([https://www.oreilly.co.jp/books/9784873113937/ 初めての Python 第3版]) |
* [http://shop.oreilly.com/product/0636920028154.do O'Reilly's Learning Python, 5th edition] ([https://www.oreilly.co.jp/books/9784873113937/ 初めての Python 第3版]) |
||
192行目: | 144行目: | ||
* [https://www.apress.com/book/9781590598726 Beginning Game Development with Python and Pygame] |
* [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 日本語訳]) |
* [http://www.greenteapress.com/thinkpython/ Think Python] ([http://www.cauldron.sakura.ne.jp/thinkpython/thinkpython/ThinkPython.pdf 日本語訳]) |
||
− | * [https://pythonspot.com Pythonspot] |
+ | * [https://pythonspot.com Pythonspot Python Tutorials] - 無料のオンライン チュートリアル |
* [http://www.techbeamers.com/python-tutorial-step-by-step/ Learn Python Step by Step] |
* [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/vinta/awesome-python awesome-python] - Python フレームワーク・ライブラリ・ソフトウェア・資料の厳選リスト。 |
||
* [https://github.com/mahmoud/boltons boltons] - 標準ライブラリで使える構造・レシピ・スニペット。 |
* [https://github.com/mahmoud/boltons boltons] - 標準ライブラリで使える構造・レシピ・スニペット。 |
||
− | * [https://www.alphacodingskills.com/python/ Learn Python Basics to Advanced] |
+ | * [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 を介して入手でき、現在のバージョンで実行されない古いアプリケーション、他のバージョンで実行することを意図したプログラム、または単なる好奇心のために役立つ場合があります。
- Python 3.13: python313AUR プレリリース
- Python 3.12: python312AUR
- Python 3.10: python310AUR
- Python 3.9: python39AUR
- Python 3.8: python38AUR (メンテナンスされていません)
- Python 3.7: python37AUR (メンテナンスされていません)
- Python 3.6: python36AUR (メンテナンスされていません)
- Python 2.7: python2AUR (メンテナンスされていません)
これらの各パッケージは、バージョン番号に基づいて名前が付けられた個別のバイナリをインストールします。たとえば、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 と比較して、速度とメモリ使用量の利点があります。
- Jython — Java で書かれた Python 言語の実装。Python スクリプトを Java プログラムに埋め込んだり、Python プログラムで Java ライブラリを使用したりするために使用できます。
- micropython — マイクロコントローラー用の Python。これには、Python 標準ライブラリの小さなサブセットが含まれており、マイクロコントローラーおよび制約のある環境で実行するように最適化されています。
- IronPython — .NET と緊密に統合された Python プログラミング言語の実装。.NET ライブラリを使用でき、.NET プログラムで Python ライブラリを使用できます。
より多くの実装が存在します Stackless、Pyston、Cinder などの一部] は大規模なテクノロジー企業の内部で使用されています。 他のものは歴史的に注目に値しますが、最も一般的な実装の改善により、もはや維持されていません。
代替シェル
python パッケージには、python
コマンドで起動できるインタラクティブな Python shell/REPL が含まれています。 次のシェルも利用できます。
- bpython — Python インタープリター用のすばらしいインターフェース。
- IPython — 強力なインタラクティブ Python シェル。
- Jupyter — IPython を利用した Web ベースの計算アプリケーション。
- ptpython — prompt-toolkit で構築された高度な PythonREPL。
パッケージの管理
Arch Linux に Python パッケージをインストールするには、いくつかの方法があります。
- 公式リポジトリ と AUR - Arch のリポジトリにはたくさんの人気パッケージが公開されています。これは 推奨される方法 で、システム全体のパッケージをインストールするのに適しています。
- pip(1) — Python の公式パッケージインストーラーです。Python Package Index やその他のインデックスから pip を使ってパッケージをインストールできます。
- pipx — pip とよく似ていますが、実行するユーザーのために、各アプリケーションとその関連パッケージのための独立した環境を作成し、システムパッケージとの競合を防ぎます。アプリケーションとしてコマンドラインから直接実行できるパッケージに重点を置いています。pipx を使って Python Package Index やその他のインデックスからパッケージをインストールできます。
- Anaconda — Anaconda はオープンソースのパッケージ管理システムおよび環境管理システムで、もともとは Python プログラム用に作られました。Conda を使って Anaconda repositories からパッケージをインストールできます。
- Miniconda — Anaconda の軽量な代替品で、パッケージマネージャーをインストールしますが、デフォルトで科学計算用パッケージをインストールしません。
pip を使ってパッケージをインストールする場合、/usr
のシステムパッケージと競合しないように、virtual environment を使用することが推奨されます。また、pip install --user
は /usr
の代わりに user scheme にパッケージをインストールできます。 pipx と Conda は環境管理をそのワークフローに統合しています。
パッケージ管理の公式なベストプラクティスについては、Python Packaging User Guide を参照してください。
歴史的には、easy_install (python-setuptools の一部) は Eggs として配布されたパッケージをインストールするために使われました。easy_install と Eggs は pip と Wheels に置き換わりました。詳しくは pip vs easy_install と Wheel vs Egg を参照してください。
ウィジェットバインディング
以下の ウィジェットツールキット のバインディングが存在します:
- Tkinter — Tk GUI ツールキットへの標準の Python インターフェイス。
- Qt for Python (PySide2) — Qt 5 の公式 Python バインディング。
- Qt for Python (PySide6) — Qt 6 の公式 Python バインディング。
- pyQt — Qt 用の Python バインディングのセット。
- wxPython — wxWidgets をラップする Python 用のクロスプラットフォーム GUI ツールキット。
これらを 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#システムの完全アップグレードを実行すると、共有ライブラリの更新は行われるが、それに依存するアプリケーションの更新は行われない場合はどうなりますか? を参照してください。
参照
オフィシャル
サードパーティー
- O'Reilly's Learning Python, 5th edition (初めての Python 第3版)
- Dive Into Python, Dive Into Python3 (日本語訳)
- A Byte of Python
- Learn Python the Hard Way
- Learn Python
- Crash into Python (他のプログラミング言語に慣れていることを前提としてます)
- Beginning Game Development with Python and Pygame
- Think Python (日本語訳)
- Pythonspot Python Tutorials - 無料のオンライン チュートリアル
- Learn Python Step by Step
- awesome-python - Python フレームワーク・ライブラリ・ソフトウェア・資料の厳選リスト。
- boltons - 標準ライブラリで使える構造・レシピ・スニペット。
- Learn Python Basics to Advanced - Python の基本から上級者向けまでを学ぶ