Which version of Python do I have installed?
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.
Yes, the (major) version number matters. Make sure you select python documentation that matches your python version.
If you want to also find out what Python is associated with .py files you might be interested in a batch file in How to write a batch file showing path to executable and version of Python handling Python scripts on Windows?
Related: Is there a guaranteed way to see all versions of Python that are available/installed on your Linux system?
Related thread to check python version from python script/program — How do I check what version of Python is running my script?
26 Answers 26
—version may also work (introduced in version 2.5)
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
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
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)
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)
Works well on Anaconda Spyder IDE. Alternatively, on normal Anaconda Prompt one can use python —version
python -c 'import sys; print(sys.version)'
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).
This worked for me once I used double-quotes around the statement. python -c «import sys; print sys.version»
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
When I open Python (command line) the first thing it tells me is the version.
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.
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
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:
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:
To only check which version you have:
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.
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: — .
>>> import sys; print('.'.format(sys.version_info)) 3.5
python -c "import sys; print('.'.format(sys.version_info))"
NOTE: Please note that the «V» in the python -V command is capital V. python -v (small «v») will launch Python in verbose mode.
You can get the version of Python by using the following command
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)
To check the Python version in a Jupyter notebook, you can use:
from platform import python_version print(python_version())
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)]
to get major, minor and micro versions, as
sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0)
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)]
I’ve updated this for version 3.9.1, as the previous syntax in Windows 10 now takes you to a link to Python in the Microsoft store, rather than displaying version details (this can be changed here superuser.com/questions/1437590/…) . The original answer was for python 3.6, the current version is 3.9.1. The syntax has since changed from python to py.
also the -V needs to be capitalised, otherwise the command line will just open python. If this happens, just Ctrl+Z and Enter to exit.
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! .
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.
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.
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'
For me, opening CMD and running
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.
Is this on Windows? What Python implementation? Anaconda? (Respond by editing your answer, not here in comments (as appropriate))
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:
On Windows, run in a command prompt:
dir %LOCALAPPDATA%\Programs\Python
There are two simple ways to check for the version of Python installed.
Run any of the codes on the command prompt:
The default Python version and the paths of all installed versions on Windows:
❯❯ 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(".".format(platform.python_version_tuple()))' 3.11 ❯❯ ~ python -c 'import platform; print(platform.python_version_tuple())' ('3', '11', '0')
Printing Python version in output
This prints the full version information string. If you only want the python version number, then Bastien Léonard’s solution is the best. You might want to examine the full string and see if you need it or portions of it.
import platform print(platform.python_version())
This prints something like
This will return a current python version in terminal.
Nice and simple! I would recommend the latter method because older version of Python do not support the «—version» flag. Plus, the less typing for me, the better.
No it should not be the answer, because Thomas specifically asked «. in the output?». He wasn’t asking how to discover which version he had installed, he was asking how to include that information into a ‘print’ statement.
sys.version_info sys.version_info(major=3, minor=2, micro=2, releaselevel='final', serial=0)
maj_ver = sys.version_info.major repr(maj_ver) '3'
print(sys.version_info.major) '3'
version = ".".join(map(str, sys.version_info[:3])) print(version) '3.2.2'
If you are using jupyter notebook Try:
If you are using terminal Try:
For the sake of having a one-liner :
print(__import__('sys').version)
If you would like to have tuple type of the version, you can use the following:
import platform print(platform.python_version_tuple()) print(type(platform.python_version_tuple())) #
If you specifically want to output the python version from the program itself, you can also do this. Uses the simple python version printing method we know and love from the terminal but does it from the program itself:
import os if __name__ == "__main__": os.system('python -V') # can also use python --version
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.