644

I have to run a Python script on a Windows server. How can I know which version of Python I have, and does it even really matter?

I was thinking of updating to the latest version of Python.

4

27 Answers 27

812

To check the version of one's Python's Software version, one should use the following code in command prompt:

python -V 

Reference: http://docs.python.org/using/cmdline.html#generic-options

Sign up to request clarification or add additional context in comments.

7 Comments

On my Windows 8.1 Pro machine, Python 2.7.10 outputs Python 2.7.10 for -V and --version; and Python 3.4.3 similarly outputs Python 3.4.3 for both options too.
you could have several other versions of python too, something like this sudo find / -iname python would probably discover them.
@PatrickT this post was about python on windows server, sudo and find would confuse some newbies, as they wouldn't work on windows
not to be confused with python -v (lowercase v) which increases the logging verbosity
If you are building an API please consider allowing both -v and -version aliases. Clearly about 500 developers had to look this up and upvote this answer for Python on SO. That's a bad design
|
205

In a Python IDE, just copy and paste in the following code and run it (the version will come up in the output area):

import sys print(sys.version) 

7 Comments

This answers the question "what version am I running", which solved a problem I was having with environment configurations (thanks). Many computers have multiple Python versions installed.
This is more useful than -v command, since it tells architecture of the installed python (32bit or 64bit)
This is also a good solution because it which works for Python 3.x
Works well on Anaconda Spyder IDE. Alternatively, on normal Anaconda Prompt one can use python --version
But this is on a Windows server. There may not be an IDE installed.
|
165

Python 2.5+:

python --version 

Python 2.4-:

python -c 'import sys; print(sys.version)' 

5 Comments

Note: The interpreter may not use the same Python version as the one that runs your scripts. I think there's some circumstances where, by default, your interpreter is Python 3, but your scripts are run in Python 2 (need #!python3 as the first line).
NOTE: On Windows, you need to go to the "Python (command line)" to enter the above steps.
This answer is more useful, the script would get ability, to run or not.
This worked for me once I used double-quotes around the statement. python -c "import sys; print sys.version"
Can you update your answer wrt. to Windows? See other comments. Thanks in advance.
35

At a command prompt type:

python -V 

Or if you have pyenv:

pyenv versions 

Comments

26

Although the question is "which version am I using?", this may not actually be everything you need to know. You may have other versions installed and this can cause problems, particularly when installing additional modules. This is my rough-and-ready approach to finding out what versions are installed:

updatedb # Be in root for this locate site.py # All installations I've ever seen have this 

The output for a single Python installation should look something like this:

/usr/lib64/python2.7/site.py /usr/lib64/python2.7/site.pyc /usr/lib64/python2.7/site.pyo 

Multiple installations will have output something like this:

/root/Python-2.7.6/Lib/site.py /root/Python-2.7.6/Lib/site.pyc /root/Python-2.7.6/Lib/site.pyo /root/Python-2.7.6/Lib/test/test_site.py /usr/lib/python2.6/site-packages/site.py /usr/lib/python2.6/site-packages/site.pyc /usr/lib/python2.6/site-packages/site.pyo /usr/lib64/python2.6/site.py /usr/lib64/python2.6/site.pyc /usr/lib64/python2.6/site.pyo /usr/local/lib/python2.7/site.py /usr/local/lib/python2.7/site.pyc /usr/local/lib/python2.7/site.pyo /usr/local/lib/python2.7/test/test_site.py /usr/local/lib/python2.7/test/test_site.pyc /usr/local/lib/python2.7/test/test_site.pyo 

1 Comment

updatedb? That is Linux. The question was about a Windows server.
25

When I open Python (command line) the first thing it tells me is the version.

2 Comments

This should be the right answer for windows. I tried for hours with "python" but didn't work. Then I typed "Python" which worked. +1 for correctly providing the command.
Do you mean pressing the Windows key and typing "Python"? Or something else?
14
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 

Comments

13

In short:

Type python in a command prompt

Simply open the command prompt (Win + R) and type cmd and in the command prompt then typing python will give you all necessary information regarding versions:

Python version

2 Comments

This is practically identical to poy's answer.
This actually took me to the MS Store for Python.
11

To check the Python version in a Jupyter notebook, you can use:

from platform import python_version print(python_version()) 

to get version number, as:

3.7.3 

or:

import sys print(sys.version) 

to get more information, as

3.7.3 (default, Apr 24 2019, 13:20:13) [MSC v.1915 32 bit (Intel)] 

or:

sys.version_info 

to get major, minor and micro versions, as

sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0) 

Comments

9

I have Python 3.7.0 on Windows 10.

This is what worked for me in the command prompt and Git Bash:

To run Python and check the version:

py 

To only check which version you have:

py --version 

or

py -V # Make sure it is a capital V 

Note: python, python --version, python -V,Python, Python --version, Python -V did not work for me.

1 Comment

python -V works back to Fedora 1 with Python 2.2.3. py --version results in command not found. python --version results in unknown option: --.
8
>>> import sys; print('{0[0]}.{0[1]}'.format(sys.version_info)) 3.5 

so from the command line:

python -c "import sys; print('{0[0]}.{0[1]}'.format(sys.version_info))" 

Comments

8

The default Python version and the paths of all installed versions on Windows:

py -0p 

One-Liners:

❯❯ python -V | cut -c8- 3.11.0 ❯❯ ~ python -VV Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] ❯❯ ~ python --version Python 3.11.0 ❯❯ ~ py --list -V:3.11 * Python 3.11 (64-bit) -V:3.10 Python 3.10 (64-bit) -V:3.9 Python 3.9 (64-bit) ❯❯ ~ py -V Python 3.11.0 ❯❯ ~ py -VV Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] ❯❯ ~ py --version Python 3.11.0 ❯❯ ~ py -0p -V:3.11 * W:\Windows 10\Python311\python.exe -V:3.10 W:\Windows 10\Python310\python.exe -V:3.9 C:\Program Files\Python39\python.exe ❯❯ ~ python -c 'import sys; print(".".join(sys.version.split(".")[0:2]))' 3.11 ❯❯ ~ python -c 'import sys; print(sys.version)' 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] ❯❯ ~ python -c 'import sys; print((str(sys.version_info.major) +"."+ str(sys.version_info.minor)))' 3.11 ❯❯ ~ python -c 'import sys; print(sys.version_info)' sys.version_info(major=3, minor=11, micro=0, releaselevel='final', serial=0) ❯❯ ~ python -c 'import platform; print(platform.python_version()[:-2])' 3.11 ❯❯ ~ python -c 'import platform; print(platform.python_version())' 3.11.0 ❯❯ ~ python -c 'import platform; print("{0[0]}.{0[1]}".format(platform.python_version_tuple()))' 3.11 ❯❯ ~ python -c 'import platform; print(platform.python_version_tuple())' ('3', '11', '0') 

Comments

7

You can get the version of Python by using the following command

python --version 

You can even get the version of any package installed in venv using pip freeze as:

pip freeze | grep "package name" 

Or using the Python interpreter as:

In [1]: import django In [2]: django.VERSION Out[2]: (1, 6, 1, 'final', 0) 

Comments

7

Use

python -V 

or

python --version 

NOTE: Please note that the "V" in the python -V command is capital V. python -v (small "v") will launch Python in verbose mode.

Comments

6

On Windows 10 with Python 3.9.1, using the command line:

 py -V Python 3.9.1 py --version Python 3.9.1 py -VV Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927 64 bit (AMD64)] 

Comments

6

Entering the following in the command prompt will typically tell you the version of Python you have installed:

python -V 

However, if you failed to add Python to your PATH variable, this won't work. (As shown below, Python isn't added to your system path by default upon installation.) See this video I made: Add PATH environment variable in Windows 11 (works for Windows 10 too).

Also, keep in mind you might have more than one version of Python installed. I have Python installed as a dependency for something and another version installed that I use to write code.

Python installation prompt

An alternative method would be to do the following:

  1. Open File Explorer.
  2. Navigate to the C: drive (or whichever drive where you think you might have installed Python.)
  3. In the search box in the top right corner, type python.exe. This should locate any Python executables.
  4. In your search results, take a look at the numbers in the file paths (keep in mind any paths that suggest it's installed (ie. your downloads directory doesn't necessarily mean that's a version that's installed, but your program directory would.) These numbers correspond to versions.

python search results

For example, many of the search results here indicate that I have version 3.11 installed. Keep these search results open if you want to add Python to your path and you may want to refer to this in order to do so.

Comments

5

If you are already in a REPL window and don't see the welcome message with the version number, you can use help() to see the major and minor version:

>>>help() Welcome to Python 3.6's help utility! ... 

Comments

4

If you have Python installed then the easiest way you can check the version number is by typing "python" in your command prompt. It will show you the version number and if it is running on 32 bit or 64 bit and some other information. For some applications you would want to have a latest version and sometimes not. It depends on what packages you want to install or use.

1 Comment

This is practically identical to poy's answer.
4

For me, opening CMD and running

py 

will show something like

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. 

1 Comment

Is this on Windows? What Python implementation? Anaconda? (Respond by editing your answer, not here in comments (as appropriate))
4

To verify the Python version for commands on Windows, run the following commands in a command prompt and verify the output:

c:\> python -V Python 2.7.16 c:\> py -2 -V Python 2.7.16 c:\> py -3 -V Python 3.7.3 

Also, to see the folder configuration for each Python version, run the following commands:

For Python 2, 'py -2 -m site' For Python 3, 'py -3 -m site' 

Comments

4

Typing where python on Windows into a Command Prompt may tell you where multiple different versions of python are installed, assuming they have been added to your path.

Typing python -V into the Command Prompt should display the version.

Comments

4

There are two simple ways to check for the version of Python installed.

Run any of the codes on the command prompt:

python -v 

or

python --version 

Comments

3

Just create a file ending with .py and paste the code below into and run it.

#!/usr/bin/python3.6 import platform import sys def linux_dist(): try: return platform.linux_distribution() except: return "N/A" print("""Python version: %s dist: %s linux_distribution: %s system: %s machine: %s platform: %s uname: %s version: %s """ % ( sys.version.split('\n'), str(platform.dist()), linux_dist(), platform.system(), platform.machine(), platform.platform(), platform.uname(), platform.version(), )) 

If several Python interpreter versions are installed on a system, run the following commands.

On Linux, run in a terminal:

ll /usr/bin/python* 

On Windows, run in a command prompt:

dir %LOCALAPPDATA%\Programs\Python 

1 Comment

The question was about Windows, not Linux.
3

For the latest versions please use the below command for the python version

py -V 

Comments

2

Mostly usage commands:

python --version 

Or

python -V 

Comments

0

For bash scripts this would be the easiest way:

# In the form major.minor.micro e.g. '3.6.8' # The second part excludes the 'Python ' prefix PYTHON_VERSION=`python3 --version | awk '{print $2}'` echo "python3 version: ${PYTHON_VERSION}" python3 version: 3.6.8 

And if you just need the major.minor version (e.g. 3.6) you can either use the above and then pick the first 3 characters:

PYTHON_VERSION=`python3 --version | awk '{print $2}'` echo "python3 major.minor: ${PYTHON_VERSION:0:3}" python3 major.minor: 3.6 

or

PYTHON_VERSION=`python3 -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))'` echo "python3 major.minor: ${PYTHON_VERSION}" python3 major.minor: 3.6 

Comments

-2

Open a command prompt window (press Windows + R, type in cmd, and hit Enter).

Type python.exe

1 Comment

This is practically identical to poy's answer.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.