Pythonのバージョンは何ですか?


73

使用しているPythonのバージョンを確認するにはどうすればよいですか?

Ubuntu 14.04(Trusty Tahr)を使用しています。


4
また、インストールされているのpythonのバイナリを確認する簡単な方法は次のとおりです。ls /usr/bin | grep python
Tejasケール

1
@TejasKale実行する方が良いls /usr/bin/python*(または、名前のどこかにあるファイルls /usr/bin/*python*本当に必要な場合)。そのようにして、出力を端末用にフォーマットします(そして、Ubuntu のデフォルトのエイリアスを使用して、複数の列を取得し、色付けします)。python lsls
エリアケイガン

回答:


86

python -V(など)を使用して、pythonコマンドが解決されるPythonのバージョンを表示できます。これで十分な場合は、これで完了です。しかし、システム内のすべてのバージョンのpythonを表示するには、もう少し時間がかかります。

Ubuntuでは、で解像度を確認できreadlink -f $(which python)ます。14.04のデフォルトの場合、これは単にを指し/usr/bin/python2.7ます。

これを連結して、そのバージョンのPythonのバージョンを表示できます。

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/usr/bin/python2.7: Python 2.7.6

しかし、これはまだ現在のpython解像度が何であるかを示しているだけです。Virtualenv(一般的なPythonスタック管理システム)pythonを使用している場合、異なるバージョンに解決される可能性があります。

$ readlink -f $(which python) | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4

これは実際の出力です。

実際には、コンテキストに応じて追加されたパス上、または異なるバイナリ名(などpython3)のいずれかで、システムの周囲に何百もの異なるバージョンのPythonが分泌される可能性があります。

Pythonバイナリが常に呼び出されpython<something>、バイナリファイルであると仮定する場合、これらの基準に一致するファイルをシステム全体で検索できます。

$ sudo find / -type f -executable -iname 'python*' -exec file -i '{}' \; | awk -F: '/x-executable; charset=binary/ {print $1}' | xargs readlink -f | sort -u | xargs -I % sh -c 'echo -n "%: "; % -V'
/home/oli/venv/bin/python: Python 2.7.4
/media/ned/websites/venvold/bin/python: Python 2.7.4
/srv/chroot/precise_i386/usr/bin/python2.7: Python 2.7.3
/srv/chroot/trusty_i386/usr/bin/python2.7: Python 2.7.6
/srv/chroot/trusty_i386/usr/bin/python3.4: Python 3.4.0
/srv/chroot/trusty_i386/usr/bin/python3.4m: Python 3.4.0
/usr/bin/python2.7: Python 2.7.6
/usr/bin/python2.7-dbg: Python 2.7.6
/usr/bin/python3.4: Python 3.4.0
/usr/bin/python3.4dm: Python 3.4.0
/usr/bin/python3.4m: Python 3.4.0
/web/venvold/bin/python: Python 2.7.4

それは明らかにかなり恐ろしいコマンドですが、これもまた実際の出力であり、かなり徹底した仕事をしたようです。


私は、次を取得しています、そしてそれが何を意味するのか分かりません: readlink: extra operand '/usr/bin/python2.7' Try 'readlink --help' for more information.
hello_there_andy

python -vはバージョンを返すと想定し、これをルートとして実行しました。それは物事の長いリストを印刷しましたが、一番上でそれが言ってinstalling zipimport hook、今は私が抜け出す方法がわからないプログラムにいるようです、アンインストールはおろか?あなたはここに私を助けることができる
PrimitiveNom

2
@Anthony -Vバージョンのフラグは大文字と小文字が区別されます。python -v詳細メッセージがオンになっているPythonコンソールに移動します。Ctrl + Dで抜け出します。または書き込みexit()、リターンを押します。
オリ

@hello_there_andyコマンドをコピーしたときにタイプミスをしたと思います。
wjandrea

63

端末に次のように入力します(Ctrl+ Alt+ T):

python -V

または

python --version

コマンドの後に--helpを入力すると、ターミナルの多くのコマンドのオプション/パラメーターのリストを見つけることができます

例:

python --help

で表示することができ、そのようなCLIのほとんどのためにも利用できるマニュアル/ manページman <command>(例:man python

からman python

COMMAND LINE OPTIONS
        -V ,  --version
              Prints the Python version number of the executable and exits.

python3多くのマシンにもインストールされているため、次のことができます。

python3 --version

実行しているpython 3.xを確認します。


2
以下の@Florian Dieschは、「python」の複数のバージョンを持っている可能性があることを暗示しているため、注目に値します。デフォルトの「python」コールは、python 2.7のインストールを指しますが、ubuntu 14.04にはpython 3.0も付属しています。
ミッチ14


8

pythonターミナルで実行すると、次のような出力が生成されます。

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

最初の行を参照してください- Python 2.7.6

を実行しpython3ます。3.4.1があります

Python 3.4.1 (default, Jul 31 2014, 12:46:17) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

ただし、これですべてが表示されるわけではありません。2つ以上のpython 3.Xxバージョンがある場合、最新バージョンのみが表示されます。

14.04のデフォルトでは、2.7.6と3.4.0があります。ご覧のとおり、3.4.1に更新しました。に移動する/usr/binと、コマンドラインで実行すると3.4.0が表示され、実行すると3.4.1が表示されるため、まだ3.4.0であることがわかりますpython3.4/usr/bin/python3.4/usr/local/bin/python3.4

私の代名詞は彼/彼です


「2つ以上のpython 3.Xxバージョンがある場合、最新バージョンのみが表示されます。」代わりに、PATH環境変数で最初にリストされているディレクトリを持っている方を表示しませんか?python3実行すると、常にインストールされているpython3の最高(サブ)バージョンが常に実行されるのはなぜですか?または、実際には、/usr/bin/python3シンボリックリンクが指すバージョンは表示されませんか?
エリアケイガン14

@Eliahは考えていないが、いくつかのプログラムがそこからの他人からそれを取る/usr/bin... 1
ティム・

2
それは実際にそれらが実行されている方法に応じて、Pythonプログラムを実行するために来るときまあ、hashbangラインはどのPythonのインタプリタとして動作(決定するために使用することができる細部 ;また、注意しての使用envhashbangライン内を見つけるために、解釈どのシステムでもよいです-Python スクリプト共通に推奨)。それがあなたがいくつかのプログラムと他のプログラムとの違いによって意味するものかどうかはわかりません。
エリアケイガン14

いいえ、ユーザーは...アイドルが3.4.1と3.4.0とコマンドラインで実行されたことを言った
ティム・

5

platform標準ライブラリのモジュールを使用して、コード自体からPythonバージョンを確認することもできます。platform.python_version()(文字列を返す)とplatform.python_version_tuple()(タプルを返す)の2つの関数があります。脚本:

import platform

print(platform.python_version())
print(platform.python_version_tuple())

ランニング:

$ python test.py 
3.4.1
('3', '4', '1')
$ python2.7 test.py 
2.7.8
('2', '7', '8')

3
sys.versionまたはを使用する方が一般的だと思いますsys.version_info
マットノルホフ14

5

Pythonのすべてのバージョンをコマンドとして使用できるようにする場合は、を実行しcompgen -c pythonます。例えば:

$ compgen -c python
python2.7
python3.4m
python3.4
python3m
python
python3
python2

上記のそれぞれのバージョンを取得したい場合は、ここに1行のライナーがあります。

$ for p in $(compgen -c python); do printf "%-16s" $p; $p --version; done
python2.7      Python 2.7.6
python3.4m     Python 3.4.3
python3.4      Python 3.4.3
python3m       Python 3.4.3
python         Python 2.7.6
python3        Python 3.4.3
python2        Python 2.7.6

更新: python*-config

python*-configプログラムが--versionフラグをサポートしていないことに気付きました。例えば:

$ python3-config --version
Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir

したがってgrep -v、たとえば、次のようにしてそれらを除外できます。

compgen -c python | grep -v -- '-config$'

これが一番の答えでしょう。
ソロモンヴィマル

2

簡単に、ターミナルを開いて次を実行します。

書く

python

2.xバージョンを確認するには私の場合、次のように表示されます。

Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

3.xの場合、次のように記述します。

python3

私の場合、次のように表示されます:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.

どちらの場合も、Pythonシェルから抜け出すには、次のように記述します。

 exit()

1
  • シェルターミナルで

    $ which -a pythonすべてのpython

    $ which -a python2.7すべてのpython2.7

    $ /usr/bin/python -Vのバージョンに関する情報を提供します/usr/bin/python

  • Pythonスクリプトをチェックインする

ここにipythonシェルのイラストがあります:

In [1]: import sys

In [2]: sys.version
2.7.11 |Anaconda 2.5.0 (64-bit)| (default, Dec  6 2015, 18:08:32) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

In [3]: sys.version_info
sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)

In [4]: sys.version_info >= (2,7)
Out[4]: True

In [5]: sys.version_info >= (3,)
Out[5]: False

python -vはバージョンを返すと想定し、これをルートとして実行しました。それは物事の長いリストを印刷しましたが、一番上でそれが言ってinstalling zipimport hook、今は私が抜け出す方法がわからないプログラムにいるようです、アンインストールはおろか?あなたはここに私を助けることができる
PrimitiveNom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.