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の色々なバージョンの確認方法でした。

65 件のコメント

  • I’m really enjoying the design and layout of your website. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a designer to create your theme? Fantastic work!

  • Just wish to say your article is as astonishing. The clarity in your post is just great and i could assume you are an expert on this subject. Well with your permission allow me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please carry on the gratifying work.

  • Today, I went to the beach with my children. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed. There was a hermit crab inside and it pinched her ear. She never wants to go back! LoL I know this is entirely off topic but I had to tell someone!

  • Hi would you mind stating which blog platform you’re using? I’m going to start my own blog soon but I’m having a hard time selecting between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design seems different then most blogs and I’m looking for something unique. P.S My apologies for getting off-topic but I had to ask!

  • It is appropriate time to make some plans for the future and it is time to be happy. I have read this post and if I could I desire to suggest you few interesting things or suggestions. Maybe you could write next articles referring to this article. I wish to read more things about it!

  • My husband and i felt really excited that Jordan managed to deal with his reports with the ideas he discovered through your web pages. It is now and again perplexing to just continually be handing out tactics which often the rest have been trying to sell. And we also know we have the writer to be grateful to for that. The main illustrations you’ve made, the easy website navigation, the friendships you can make it easier to foster – it is everything awesome, and it’s aiding our son in addition to our family reason why the situation is satisfying, and that is pretty indispensable. Many thanks for everything!

  • Greetings from Ohio! I’m bored to tears at work so I decided to check out your blog on my iphone during lunch break. I love the knowledge you provide here and can’t wait to take a look when I get home. I’m surprised at how fast your blog loaded on my mobile .. I’m not even using WIFI, just 3G .. Anyhow, excellent blog!

  • Thank you, I’ve recently been searching for info about this topic for ages and yours is the greatest I have discovered till now. But, what about the conclusion? Are you sure about the source?

  • Wow that was odd. I just wrote an very long comment but after I clicked submit my comment didn’t show up. Grrrr… well I’m not writing all that over again. Anyway, just wanted to say wonderful blog!

  • Thanks for ones marvelous posting! I seriously enjoyed reading it, you may be a great author.I will make certain to bookmark your blog and will come back from now on. I want to encourage you to continue your great job, have a nice weekend!

  • Hi I am so thrilled I found your site, I really found you by mistake, while I was browsing on Bing for something else, Nonetheless I am here now and would just like to say thanks a lot for a incredible post and a all round interesting blog (I also love the theme/design), I don’t have time to look over it all at the minute but I have bookmarked it and also included your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the superb work.

  • I have not checked in here for a while because I thought it was getting boring, but the last few posts are great quality so I guess I’ll add you back to my everyday bloglist. You deserve it my friend 🙂

  • It is the best time to make some plans for the longer term and it’s time to be happy. I have learn this put up and if I may just I desire to counsel you some fascinating things or tips. Perhaps you could write subsequent articles relating to this article. I want to read even more issues about it!

  • I do enjoy the manner in which you have presented this particular matter and it does supply us a lot of fodder for thought. On the other hand, through just what I have observed, I just simply hope as the comments pile on that men and women keep on issue and in no way get started on a soap box involving the news of the day. Anyway, thank you for this superb piece and although I do not really agree with the idea in totality, I respect the standpoint.

  • Hi, Neat post. There is a problem with your website in internet explorer, would check this… IE still is the market leader and a good portion of people will miss your magnificent writing because of this problem.

  • It’s the best time to make some plans for the future and it’s time to be happy. I’ve read this post and if I could I want to suggest you some interesting things or tips. Perhaps you could write next articles referring to this article. I desire to read even more things about it!

  • There are some attention-grabbing points in time in this article but I don’t know if I see all of them center to heart. There may be some validity however I will take hold opinion until I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as nicely

  • Great post. I used to be checking continuously this blog and I am impressed! Very useful information particularly the remaining part 🙂 I take care of such info a lot. I used to be looking for this particular info for a long time. Thank you and best of luck.

  • What i don’t realize is in fact how you’re not really much more neatly-favored than you might be now. You are very intelligent. You realize thus considerably with regards to this topic, produced me individually imagine it from so many varied angles. Its like men and women are not interested unless it’s one thing to do with Woman gaga! Your individual stuffs nice. At all times handle it up!

    http://out.ucoz.org/go?http://youtube.com/watch?v=aGVokWny25g/

  • Hey just wanted to give you a quick heads up. The words in your post seem to be running off the screen in Firefox. I’m not sure if this is a format issue or something to do with web browser compatibility but I thought I’d post to let you know. The style and design look great though! Hope you get the problem solved soon. Cheers

  • Aw, this was a really nice post. In concept I would like to put in writing like this additionally – taking time and actual effort to make an excellent article… however what can I say… I procrastinate alot and under no circumstances seem to get one thing done.

  • I am really impressed with your writing skills and also with the layout on your weblog. Is this a paid theme or did you customize it yourself? Either way keep up the nice quality writing, it’s rare to see a nice blog like this one nowadays..

  • Please let me know if you’re looking for a article author for your site. You have some really good articles and I think I would be a good asset. If you ever want to take some of the load off, I’d absolutely love to write some articles for your blog in exchange for a link back to mine. Please blast me an e-mail if interested. Kudos!

  • This design is incredible! You certainly know how to keep a reader amused. Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Fantastic job. I really loved what you had to say, and more than that, how you presented it. Too cool!

  • I’m not that much of a online reader to be honest but your blogs really nice, keep it up! I’ll go ahead and bookmark your site to come back later. All the best

  • I’m really enjoying the design and layout of your website. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a designer to create your theme? Exceptional work!

  • Do you have a spam issue on this site; I also am a blogger, and I was wanting to know your situation; many of us have developed some nice procedures and we are looking to swap techniques with others, please shoot me an email if interested.

  • Hey! This is my first visit to your blog! We are a team of volunteers and starting a new project in a community in the same niche. Your blog provided us valuable information to work on. You have done a extraordinary job!

  • My husband and i were quite relieved when Ervin managed to deal with his research using the ideas he came across while using the site. It is now and again perplexing just to find yourself giving away facts that some people might have been selling. We really consider we’ve got the website owner to thank for that. The explanations you have made, the simple website menu, the friendships you will make it possible to instill – it’s got mostly remarkable, and it’s letting our son and us imagine that the article is enjoyable, which is certainly rather mandatory. Many thanks for the whole thing!

  • I’ve been browsing online more than 3 hours as of late, yet I never found any attention-grabbing article like yours. It’s beautiful worth sufficient for me. In my opinion, if all site owners and bloggers made good content material as you did, the web will be much more helpful than ever before.

  • I was just seeking this information for some time. After 6 hours of continuous Googleing, at last I got it in your site. I wonder what’s the lack of Google strategy that do not rank this kind of informative websites in top of the list. Normally the top websites are full of garbage.

  • Simply desire to say your article is as surprising. The clarity to your post is simply great and i can think you’re knowledgeable on this subject. Fine with your permission let me to clutch your feed to stay updated with drawing close post. Thank you a million and please carry on the rewarding work.

  • Aw, this was a really nice post. In concept I want to put in writing like this additionally – taking time and precise effort to make an excellent article… but what can I say… I procrastinate alot and on no account appear to get something done.

  • Hello! I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing months
    of hard work due to no data backup. Do you have any solutions to protect against hackers?

  • Howdy! I’m at work browsing your blog from my new iphone 3gs! Just wanted to say I love reading your blog and look forward to all your posts! Carry on the excellent work!

  • I cherished as much as you’ll receive performed proper here. The caricature is attractive, your authored material stylish. nonetheless, you command get got an nervousness over that you would like be turning in the following. in poor health for sure come more before again since precisely the same just about a lot continuously within case you shield this hike.

  • The following time I read a blog, I hope that it doesnt disappoint me as a lot as this one. I mean, I know it was my option to read, but I really thought youd have one thing interesting to say. All I hear is a bunch of whining about something that you possibly can repair if you werent too busy searching for attention.

  • It’s appropriate time to make some plans for the future and it’s time to be happy. I’ve read this post and if I could I want to suggest you some interesting things or tips. Perhaps you can write next articles referring to this article. I wish to read more things about it!

  • I am no longer positive where you are getting your info, but good topic. I needs to spend a while finding out much more or figuring out more. Thank you for great info I used to be looking for this information for my mission.

  • I think other web site proprietors should take this web site as an model, very clean and fantastic user genial style and design, as well as the content. You are an expert in this topic!

  • Nice post. I learn one thing more challenging on completely different blogs everyday. It is going to all the time be stimulating to read content from other writers and practice a little bit one thing from their store. I’d prefer to use some with the content material on my blog whether or not you don’t mind. Natually I’ll give you a link in your internet blog. Thanks for sharing.

  • It’s the best time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I wish to suggest you few interesting things or advice. Maybe you could write next articles referring to this article. I desire to read even more things about it!

  • This website online can be a walk-through for all of the data you needed about this and didn’t know who to ask. Glimpse right here, and you’ll definitely uncover it.

  • The subsequent time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read, however I actually thought youd have something interesting to say. All I hear is a bunch of whining about something that you could repair in the event you werent too busy on the lookout for attention.

  • Terrific work! This is the type of information that should be shared around the web. Shame on Google for not positioning this post higher! Come on over and visit my website . Thanks =)

  • Greetings from Idaho! I’m bored to death at work so I decided to check out your site on my iphone during lunch break. I really like the information you present here and can’t wait to take a look when I get home. I’m shocked at how quick your blog loaded on my cell phone .. I’m not even using WIFI, just 3G .. Anyhow, fantastic blog!

  • コメントを残す

    メールアドレスが公開されることはありません。