「Python」の版間の差分
(前文を更新) |
(トラブルシューティングを翻訳して追加) |
||
104行目: | 104行目: | ||
[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] |
[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 ベースのアプリケーションでは、{{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#システムの完全アップグレードを実行すると、共有ライブラリの更新は行われるが、それに依存するアプリケーションの更新は行われない場合はどうなりますか?]] を参照してください。 |
||
== 参照 == |
== 参照 == |
2023年5月21日 (日) 14:51時点における版
What is Python? から:
Python はインタプリタ型の対話的なオブジェクト指向プログラミング言語です。モジュール、例外、動的型付け、非常に高度な動的データ型、クラスなどが組み込まれています。また、オブジェクト指向にとどまらず、手続き型プログラミングや関数型プログラミングなど、様々なプログラミングパラダイムをサポートしています。Python は、非常に明快な構文と驚くべきパワーを兼ね備えています。多くのシステムコールやライブラリ、様々なウィンドウシステムへのインタフェースを持ち、C や C++ による拡張が可能です。また、プログラム可能なインターフェースを必要とするアプリケーションのための拡張言語としても使用可能です。Python は Linux や macOS を含む多くの Unix 系 OS や Windows で動作し、移植性に優れています。
目次
インストール
Python 3 の最新リリースを提供する python パッケージを インストール して下さい。
その他のバージョン
Python の以前および将来のバージョンは AUR を介して入手でき、現在のバージョンで実行されない古いアプリケーション、他のバージョンで実行することを意図したプログラム、または単なる好奇心のために役立つ場合があります。
- Python 3.11: python311AUR
- Python 3.10: 現在のリリース、前のセクションを参照
- Python 3.9: python39AUR
- Python 3.8: python38AUR
- Python 3.7: python37AUR
- Python 3.6: python36AUR (メンテナンスされていません)
- Python 2.7: python2AUR (メンテナンスされていません)
これらの各パッケージは、バージョン番号に基づいて名前が付けられた個別のバイナリをインストールします。たとえば、Python 3.7 の場合は python3.7 であり、システム上で複数のバージョンが共存できるようにします。pyenv を使用して、複数のバージョンの Python を簡単に切り替えることもできます。
古いバージョンの Python 用の追加のモジュール/ライブラリは、AUR で python<version without period>
を検索することで見つけることができます。たとえば、Python 3.7 モジュールの場合は python37
を検索します。
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 バインディング
- https://wiki.python.org/moin/TkInter || 標準モジュール
- pyQt — Qt バインディング
- https://riverbankcomputing.com/software/pyqt/intro || python2-pyqt4AUR python2-pyqt5[リンク切れ: パッケージが存在しません] python-pyqt4AUR python-pyqt5
- pySide — Qt バインディング
- pyGTK — GTK+ 2 バインディング
- http://www.pygtk.org/ || pygtkAUR
- PyGObject — GObject Introspection による GTK+ 2/3 バインディング
- wxPython — wxWidgets バインディング
以上のバインディングを Python で使うには、適当なウィジェットキットをインストールする必要があります。
ヒントとテクニック
仮想環境
Python は他の仮想環境や、システムの Python パッケージに干渉されることなくパッケージをインストールすることのできる隔離された環境を作成するツールを提供しています。特定のアプリケーションで利用される Python インタプリタを変更することもできます。
詳細は Python/仮想環境 を見てください。
Python シェルでのタブ補完機能
タブ補完 は対話型シェルでデフォルトで利用可能です。 readline completer はグローバル名前空間内の名前のみを補完することに注意してください。python-jedi を使えば、よりリッチなタブ補完を体験できます [1]
トラブルシューティング
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 の基本から上級者向けまでを学ぶ