他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

46.1. Python 2対Python 3

PL/PythonはPython 2およびPython 3言語の両方をサポートします。 (PostgreSQLのインストール手順では、サポートするPythonの細かなマイナーバージョンに関して、より正確な情報が記載されています。) Python 2及びPython 3言語には重要な側面でいくつか互換性がありませんので、混在を防ぐためにPL/Pythonでは以下の命名ならびに移行計画が使用されています。

この計画は、PEP 394内の、pythonコマンドの命名と移行に関する推奨に類似しています。

Python 2用のPL/PythonかPython 3用のPL/Python、またはその両方が利用できるかどうかは、構築時の設定またはインストールしたパッケージに依存します。

ヒント

どのバージョンのPythonがインストール時に検出されるか、または、PYTHON環境変数を使用してバージョンを明示的に設定することで、構築される亜種が決まります。 16.4を参照してください。 1つのインストレーションで両方のPL/Pythonを利用可能にするためには、ソースツリーでconfigureと構築を2回行う必要があります。

この結果以下のような使用方法と移行戦略となります。

また、Python 3への移植に関する情報についてはPython 3.0における新機能文書を参照してください。

Python 2を基にしたPL/PythonとPython 3を基にしたPL/Pythonを同じセッションで使用することはできません。 動的モジュール内のシンボルが相反するため、こうするとPostgreSQLサーバプロセスがクラッシュしてしまうためです。 あるセッション内でPythonのメジャーバージョンが混在させないための検査があり、不一致が見つかるとセッションは中断されます。 しかし別々のセッションからであれば、同じデータベースにおいて異なるPL/Pythonの両方を使用することができます。