「Python」の版間の差分
英語版に追従して項目を整理 |
→インストール: 情報を更新 |
||
| 20行目: | 20行目: | ||
== インストール == |
== インストール == |
||
| ⚫ | |||
=== 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 章] を見て下さい。 |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
最新の RC/ベータ版をソースからビルドしたいときは、[https://www.python.org/downloads/ Python Downloads] を訪れて下さい。[[Arch User Repository]] に [[PKGBUILD]] も含まれています。RC 版をビルドする場合、バイナリは (デフォルトで) {{ic|/usr/local/bin/python3.x}} にインストールされるので注意してください。 |
|||
* Python 3.10: 現在のリリース、前のセクションを参照 |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
* Python 3.6: {{AUR|python36}} (メンテナンスされていません) |
|||
* Python 2.7: {{AUR|python2}} ([https://www.python.org/doc/sunset-python-2/ メンテナンスされていません]) |
|||
{{Warning|3.7 より前のバージョンの Python はサポートが終了し、メンテナンスされていません。[https://devguide.python.org/versions/ Python バージョンのステータス] を参照してください。}} |
|||
=== Python 2 === |
|||
これらの各パッケージは、バージョン番号に基づいて名前が付けられた個別のバイナリをインストールします。たとえば、Python 3.7 の場合は ''python3.7'' であり、システム上で複数のバージョンが共存できるようにします。{{Pkg|pyenv}} を使用して、複数のバージョンの Python を簡単に切り替えることもできます。 |
|||
{{Warning|Python 2 に依存したパッケージも残っていますが、Python 2 は2020年以降メンテナンスされません。https://www.python.org/doc/sunset-python-2/}} |
|||
| ⚫ | |||
最新版の 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}} を指定する必要があります。 |
|||
| ⚫ | |||
それには、プログラムやスクリプトをテキストエディタで開いて一番最初の行を変更してください。 |
|||
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}} を使用して環境を変更する別の方法として [[#仮想環境]] を使うものがあります。 |
|||
| ⚫ | |||
| ⚫ | |||
* [[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|より多くの実装が利用可能]] ただし、最も一般的なものが改良されたため、ほとんどのものはメンテナンスされていません。 |
|||
=== 代替シェル === |
=== 代替シェル === |
||
| 83行目: | 63行目: | ||
* {{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}}}} |
||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
スーパーユーザーを必要としない別の方法として、ホームディレクトリに追加の Python バージョンをインストールするために {{Pkg|pyenv}} を使うことを検討して下さい。 |
|||
== パッケージの管理 == |
== パッケージの管理 == |
||
2023年1月10日 (火) 00:19時点における版
Wikipedia より:
- Python は、広く使用されている汎用のスクリプト言語である。コードのリーダビリティが高くなるように言語が設計されているとされ、その構文のおかげで、C++ や Java などの言語に比べて、より少ないコード行数でプログラムを表現することができるとされている。小規模なプログラムから大規模なプログラムまで、さまざまなプログラムをクリアに書けるように、多くのコードが提供されている。
- Python は複数のプログラミングパラダイムをサポートしており、オブジェクト指向、命令型、関数型、手続き型などのスタイルでプログラムを書くことができる。動的型付けであり、自動メモリ管理が可能で、さまざまな領域をカバーする大規模な標準ライブラリを提供している。
インストール
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]
参照
オフィシャル
サードパーティー
- 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
- Learn Python Step by Step
- awesome-python - Python フレームワーク・ライブラリ・ソフトウェア・資料の厳選リスト。
- boltons - 標準ライブラリで使える構造・レシピ・スニペット。
- Learn Python Basics to Advanced