Pythonのバージョン確認方法/Mac・Windows・Ubuntu

出典:pixabay.com

本記事では、Python本体およびPythonのパッケージ(ライブラリ)のバージョンの確認方法について解説します。このそれぞれに①コマンドで確認する方法と②ソースコードで確認する方法があります。 最初に述べておきたいことは、Pythonはクロスプラットフォームで動く言語であることです。WindowsであれMacであれLinux(Ubuntu他)であれ、Pythonインタプリタがあるプラットフォームであれば(Pythonがインストールさえしてあれば)同じように動作します。そのため、コマンドやソースコードでの確認方法は、どのプラットフォームでも同様になります。 コマンドでの確認の場合は、MacやLinux(Ubuntu他)であればターミナルを起動し、WindowsならWindows PowerShellまたはdosプロンプト(コマンドプロンプト)を起動して実行してください。 本記事では、Windows PowerShellでのコマンドと実行結果を記載しますが、WindowsのdosプロンプトやMac、Linux(Ubuntu他)のOSでもコマンドや動作結果は同様です。

Python本体のバージョンを確認するための2つの方法

出典:pixabay.com

Python本体のバージョンを確認するための方法は下記の2つの方法になります。 ①コマンドで確認する場合 今使用している端末のPythonのバージョンを確認する場合に使用します。Pythonのプロジェクトごとに仮想環境を作成している場合でも、仮想環境に入って同様のコマンドを実行することで、使用中の仮想環境のバージョンを確認することが出来ます。 ②ソースコードで確認する場合 Pythonにあらかじめ用意されている標準ライブラリを使用してソースコードに確認用のコードを埋め込む事で、Pythonプログラムを実行している環境のバージョンを調べることが出来ます。Pythonのバージョンを単に画面に表示するだけでなく、Pythonプログラムを実行している環境を判定して、処理を振り分けることも出来ます。

Python本体のバージョン(コマンドで確認する方法)

冒頭で前述した、お使いの環境のコマンドプロンプトやターミナルで下記のコマンドを入力し、キーボードのEnterキーを押下します。 Python/Python3コマンドに、-versionオプションまたは--Vオプションを付与して実行します。

PS C:\> Python --version 実行結果例 Python 3.6.5 PS C:\> Python -V 実行結果例 Python 3.6.5

もしここでコマンドが見つからない旨のメッセージが表示される場合は、PythonコマンドにPathが通っていない可能性がありますので確認してください。

Python本体のバージョン(ソースコードで確認する方法)

この方法では、Pythonの標準モジュールであるsysモジュール・platformモジュールの機能を使用して、プログラムを実行しているPython環境の情報を取得します。これらのモジュールはプログラムの最初に必ずインポートして使用を宣言することを忘れないで下さい (例 import sys)。

補足:Pythonインタラクティブシェルについて

ターミナルやプロンプトで下記のコマンドを実行すると、Pythonインタラクティブシェルが起動されます。

PS C:\> Python 実行結果例 Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>>

この状態にする事で、プログラムファイルに記述することなくプログラムを実行することが出来ます。「ソースコードで確認する方法」を試すために、本記事ではPythonインタラクティブシェルで確認していきます。 Pythonインタラクティブシェルを抜けて元の画面に戻したい場合は、下記のコマンドを実行して元のターミナルの入力待ち状態に戻すことが出来ます。

>>> exit()

sys.versionの参照

Python標準のsysモジュールを使用しますので最初にインポートして使用します。 sys.versionは、主にPythonのインタラクティブシェルで下記の情報を文字列で表示する用途で使用します。

Python インタプリタのバージョン番号の他、ビルド番号や使用コンパイラなどの情報を示す文字列です。

プログラム中でバージョン情報を参照する際はこの文字列の参照ではなく、後述するversion_infoまたはplatformモジュールが提供する関数を使用することをお勧めします。Pythonインタラクティブシェルを起動したら、下記の様に実行します。

>>>import sys >>>sys.version   実行結果例 '3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)]'

sys.version_infoの参照

sys.version_infoでは、バージョンの各情報を表すmajor, minor, micro, releaselevel, serialの要素名での参照が可能です。releaselevel以外の値は全て整数で、releaselevelの値は’alpha’, ’beta’, ’candidate’, ’final’ の何れかとなります。 sys.version_infoは下記のように実行します。

>>>import sys >>>sys.version_info 実行結果例 sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)

ここで各要素を取得したい場合、例えばメジャーバージョンのみを参照する場合は、sys.version_info.majorもしくはsys.version_info[0]で取得できます。名前付きタプルがサポートされているのはPython2.7以降からです。それより前のバージョンではインデックスでの要素指定で取得してください。

>>>import sys >>>sys.version_info.major 実行結果例 3

platform.python_version_tuple()の参照

platform.python_version_tuple()はPython標準のplatformモジュールを使用し、Pythonのバージョンに関わらずタプル型で返却する関数です。 Pythonバージョンの各情報を表すmajor, minor, patchlevelの情報を全て文字列(数値ではない)で返却します。 例えば、Pythonバージョンのパッチレベルを取得する際は下記のように取得します。

>>>import platform >>>platform.python_version_tuple()[2] 実行結果 '5'

Pythonパッケージのバージョンを確認するための2つの方法

出典:pixabay.com

Pythonパッケージのバージョンを確認するための方法は下記の2つの方法があります。 コマンドもソースコードでの確認でも、WindowsとMac、Linux(Ubuntu他)全プラットフォームで動作は共通となります。 ①コマンドで確認する場合 インストール済Pythonパッケージをコマンドで確認するには、Pythonのパッケージ管理ツールであるpipコマンドを使用します。

②ソースコードで確認する場合 スクリプトで使用されているPythonパッケージのバージョンは、「__version__」属性を取得することで確認することが出来ます。__version__属性は、Pythonコードのコーディング規約であるPEP8で推奨されているため、Pythonパッケージに属性を埋め込む標準的な方法となっています。しかし、あくまで推奨であるため、中には__version__属性が設定されていないPythonパッケージもあることに注意が必要です。

Pythonパッケージのバージョン(コマンドで確認する方法)

Pythonのパッケージ管理ツールである「pip」を使用している場合は、pip list、pip freeze、pip showのコマンドでインストール済Pythonパッケージのバージョンを確認できます。Python2系とPython3系が共存している環境では、pipコマンドまたはpip3コマンドを使用します。

補足:pip3とpip3について

Python2とPython3の共存している環境の場合は、pipでPython2に、pip3でPython3にPythonパッケージをインストールすることとなります。Python3のみ入っている環境の場合は、pipもpip3のどちらを呼んでも動作は同じです。

pip list(Pythonパッケージ一覧でのバージョン確認)

pip listコマンドでは、インストールされているPythonパッケージ名称およびそのバージョンが一覧で表示されます。下記のように実行します。

PS C:\> pip list 実行結果例 Package Version ------------------ --------- altgraph (0.14) astroid (1.5.2) autopep8 (1.3.1) Babel (2.4.0) backports-abc (0.5)

pip freeze(Pythonパッケージ一覧でのバージョン確認)

pip freezeコマンドでは、インストールされているPythonパッケージの名称とそのバージョンが一覧で表示されます。今インストール済みのPythonパッケージを一覧で確認したいだけであれば、先ほどのpip listと大差はありませんので、好きなフォーマットの方のコマンドを使用してください。 下記のように実行します。

PS C:\> pip freeze 実行結果例 altgraph==0.14 astroid==1.5.2 autopep8==1.3.1 Babel==2.4.0 backports-abc==0.5

pip show(個々のPythonパッケージごとのバージョン確認)

pip showコマンドは、インストールされている個々のPythonパッケージ各々の詳細情報を知りたいときに使用します。下記のように実行します。

PS C:\> pip show numpy 実行結果例 Name: numpy Version: 1.13.0 Summary: NumPy: array processing for numbers, strings, records, and objects. Home-page: http://www.numpy.org Author: NumPy Developers Author-email: numpy-discussion@python.org License: BSD Location: c:\python34\lib\site-packages Requires:

Pythonパッケージのバージョン(ソースコードで確認する方法)

スクリプトで使用されているPythonパッケージのバージョンは、__version__属性で取得できます。 下記は、numpyを例にしてバージョンを確認する方法です。

>>> import numpy >>> print(numpy.__version__) 実行結果例 1.14.1

前述したとおり、__verision__属性が設定されていないPythonパッケージもあります。逆に、Pythonパッケージによっては__version__属性だけでなく、依存パッケージの情報やGitのバージョンなど、より詳細のバージョン情報を取得できる関数を用意している場合もあります。Pythonパッケージごとのドキュメントをよく確認してください。

まとめ

出典:pixabay.com

今回は、Python本体とPythonパッケージのバージョンを確認する方法を解説してきました。 序盤から何回も申し上げましたように、Pythonはクロスプラットフォームで動作する言語です。Pythonのコマンドや関数は、系(2系、3系)が同じであればWindowsやMac、Linux(Ubuntu他)の全プラットフォームで同じ動作をします。 これは今回述べた「バージョンの確認方法」のみにあてはまることではありません。 今後Pythonを扱う上で、コマンドやモジュールを使ってやりたいことを実現するためにWeb等で調べものをすると思います。その時でも、たとえ記事上で動作確認したOSがWindowsであれMacであれLinux(Ubuntu他)であっても、そしてあなたの環境がその環境と異なっていても、動作に差はないことを知っておくと調べものがしやすくなるでしょう。 今回の解説で、やりたい事に合った方法は見つかりましたでしょうか。お役に立てましたら幸いです。以上、Pythonの色々なバージョンの確認方法でした。