How to check Django version
Asked Answered
A

34

715

I have to use Python and Django for our application. So, I have two versions of Python, 2.6 and 2.7. Now I have installed Django. I could run the sample application for testing Django successfully. But how do I check whether Django uses the 2.6 or 2.7 version and what version of modules Django uses?

Atonement answered 24/6, 2011 at 13:22 Comment(5)
Shortest way - python3 -m django --versionHurryscurry
In my installation python3 is not recognized. This works: python -m django --versionIncommode
I believe since a somewhat old Python version is preinstalled on MacOS systems, a suffix of "3" is required on "python" command to avoid confusions from the OS side on which version to use. This isn't required on Windows systems so @AnttiA 's solution works just fine.Instructions
another shortest way is django-admin --versionOdelle
The suggested commands show your installed django version, not the code version. Check the requirements.txt cat src/requirements.txt | grep "Django==" or in your application's settings.py file, on the fifth line you'll see something like Generated by 'django-admin startproject' using Django x.x.x (for the user-specific question, the accepted answers are the way, but I found that this could also be useful).Mariken
S
803

Django 1.5 supports Python 2.6.5 and later.

If you're under Linux and want to check the Python version you're using, run python -V from the command line.

If you want to check the Django version, open a Python console and type

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
Sorption answered 24/6, 2011 at 13:30 Comment(2)
Just dive into env before you check the version, otherwise no module named django.Evaporate
This says - AttributeError: module 'django' has no attribute 'VERSION'Induct
O
427

Basically the same as bcoughlan's answer, but here it is as an executable command:

$ python -c "import django; print(django.get_version())"
2.0
Oquinn answered 29/5, 2013 at 3:42 Comment(2)
Combining Brady Emerson and bcoughlan: python -c "import django; print(django.VERSION)" returns (1, 8, 5, 'final', 0)Careworn
You should do python -c "import django; print(django.__version__)" instead. It also returns '2.2.4' (it's just a call to get_version()) and is the standard followed by most other libraries because it's defined in PEP 8. It works since Django 1.8Karyogamy
T
287

If you have installed the application:

$ django-admin --version
3.2.6
Trevethick answered 3/10, 2013 at 10:58 Comment(5)
As May 2018 (the date I've tested this answer again), it shows version as 1.11.5 despite I've installed 2.0.1. But >> django.VERSION in python shell displays the right versionSinglefoot
this worked for me: ubuntu 18.04, virtualenv with P 3.6 and Django 2.2Gally
For older versions it is django-admin.py --version. Depending on how you've done your python installation, you may even need python django-admin.py --version.Delve
This works for me in 2022, ubuntu 20.02, virtualenv with Python 3.8 and Django 4.0.2Allayne
this just shows you the django-admin version. it's python3 -c "import django; print(django.get_version())" that will give you the actual django version installedTake
P
121

Go to your Django project home directory and do:

./manage.py --version
Pernickety answered 29/1, 2014 at 23:57 Comment(1)
I like this one as we as Django devs often use the manage.py functionalities. You can also use 'python manage.py version' (no need for --)Plagiarize
S
55
>>> import django
>>> print(django.get_version())
1.6.1

I am using the IDLE (Python GUI).

Slavic answered 22/1, 2014 at 22:56 Comment(0)
C
52

If you have pip, you can also do a

pip freeze
and it will show your all component version including Django .

You can pipe it through grep to get just the Django version. That is,

josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
Chuppah answered 28/8, 2013 at 16:40 Comment(0)
Q
49

As you say you have two versions of Python, I assume they are in different virtual environments (e.g. venv) or perhaps Conda environments.

When you installed Django, it was likely in only one environment. It is possible that you have two different versions of Django, one for each version of python.

In from a Unix/Mac terminal, you can check your Python version as follows:

$ python --version

If you want to know the source:

$ which python

And to check the version of Django:

$ python -m django --version
Quire answered 20/7, 2016 at 0:11 Comment(0)
D
37

For Python:

import sys
sys.version

For Django (as mentioned by others here):

import django
django.get_version()

The potential problem with simply checking the version, is that versions get upgraded and so the code can go out of date. You want to make sure that '1.7' < '1.7.1' < '1.7.5' < '1.7.10'. A normal string comparison would fail in the last comparison:

>>> '1.7.5' < '1.7.10'
False

The solution is to use StrictVersion from distutils.

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
Dunkin answered 15/10, 2014 at 15:47 Comment(1)
What about using django.VERSION, which already comes as a tuple? I'm pretty sure doing django.VERSION >= (1, 8) will always work as intended.Sweaty
E
22

There are various ways to get the Django version. You can use any one of the following given below according to your requirements.

Note: If you are working in a virtual environment then please load your python environment


Terminal Commands

  1. python -m django --version
  2. django-admin --version or django-admin.py version
  3. ./manage.py --version or python manage.py --version
  4. pip freeze | grep Django
  5. python -c "import django; print(django.get_version())"
  6. python manage.py runserver --version

Django Shell Commands

  1. import django django.get_version() OR django.VERSION
  2. from django.utils import version version.get_version() OR version.get_complete_version()
  3. import pkg_resources pkg_resources.get_distribution('django').version

(Feel free to modify this answer, if you have some kind of correction or you want to add more related information.)

Englishry answered 11/6, 2018 at 14:19 Comment(0)
C
18

Simply type python -m django --version or type pip freeze to see all the versions of installed modules including Django.

Covarrubias answered 1/2, 2020 at 6:51 Comment(1)
no reason for this to be downvoted at all, it is one of the most concise answers.Crumby
A
15
django-admin --version
python manage.py --version
pip freeze | grep django
Anaphrodisiac answered 9/7, 2017 at 14:1 Comment(4)
You'll need to use python manage.py --version Note the double -Anthropo
@Anthropo yes of course a typo.. Thanks a lot..Answer editedAnaphrodisiac
I needed to make the d in Django capital for grep to find it.Sedimentation
The first command and the second return two different version numbers for me.Codding
H
13

For checking using a Python shell, do the following.

>>>from django import get_version
>>> get_version()

If you wish to do it in Unix/Linux shell with a single line, then do

python -c 'import django; print(django.get_version())'

Once you have developed an application, then you can check version directly using the following.

python manage.py runserver --version
Hurl answered 24/12, 2013 at 9:26 Comment(0)
T
11

Type in your CMD or terminal:

python -m django --version
Thorp answered 26/4, 2020 at 10:34 Comment(0)
T
11

Official Documentation

First:

python -m django --version

Second:

import django
print(django.get_version())
Tameka answered 24/1, 2022 at 17:46 Comment(0)
P
8

Django version or any other package version

Open the terminal or command prompt

Type

pip show django

or

pip3 show django

You can find any package version...

Example:

pip show tensorflow

pip show numpy

etc....

Pelvis answered 11/12, 2019 at 9:19 Comment(1)
I like the simplicity of this answer best. pip freeze shows a ton of extra crap if you've pip'd in a bunch of packages.Hairworm
B
7

Run pip list in a Linux terminal and find Django and its version in the list:

Run pip freeze on cmd on Windows.

Butterbur answered 15/2, 2017 at 9:0 Comment(0)
R
6

Django will use the version of Python specified by the PYTHONPATH environment variable. You can use echo $PYTHONPATH in a shell to determine which version will be used.

The module versions used by Django will be the module versions installed under the version of Python specified by PYTHONPATH.

Rayerayfield answered 24/6, 2011 at 13:36 Comment(0)
B
5

There is an undocumented utils versions module in Django:

https://github.com/django/django/blob/master/django/utils/version.py

With that, you can get the normal version as a string or a detailed version tuple:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
Burglarize answered 9/12, 2015 at 10:34 Comment(0)
B
4

You can do it without Python too. Just type this in your Django directory:

cat __init__.py | grep VERSION

And you will get something like:

VERSION = (1, 5, 5, 'final', 0)
Bracknell answered 6/7, 2014 at 18:50 Comment(3)
This is great when you don't want to activate the virtual env just to get a value, or you're using something like AWS Elastic Beanstalk and can't activate the virtual env.Ingathering
@Ingathering you dont need to activate your env to do a pip freeze / python -c "import <module>; <module>.VERSION". You can simply reference it: /path/to/env/bin/python -c "<command>" or if you want to install/use pip, same thing: /path/to/env/bin/pip freeze. I use this all the time, specially when im logged in as a root and all of my application code runs as www-data i do: sudo su www-data -c "/path/to/env/bin/pip install <module>" and not even blink. (i know this is almost 2 years later, and you probably know about it now -- this is more for the next guy)Professed
> without Python >> python -cBracknell
P
4

The most pythonic way I've seen to get the version of any package:

>>> import pkg_resources;
>>> pkg_resources.get_distribution('django').version
'1.8.4'

This ties directly into setup.py: https://github.com/django/django/blob/master/setup.py#L37

Also there is distutils to compare the version:

>>> from distutils.version import LooseVersion, StrictVersion
>>> LooseVersion("2.3.1") < LooseVersion("10.1.2")
True
>>> StrictVersion("2.3.1") < StrictVersion("10.1.2")
True
>>> StrictVersion("2.3.1") > StrictVersion("10.1.2")
False

As for getting the python version, I agree with James Bradbury:

>>> import sys
>>> sys.version
'3.4.3 (default, Jul 13 2015, 12:18:23) \n[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]'

Tying it all together:

>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True
Professed answered 20/10, 2015 at 1:11 Comment(0)
R
4

After django 1.0 you can just do this

$ django-admin --version
1.11.10
Rese answered 24/5, 2018 at 4:38 Comment(0)
A
3

Type the following command in Python shell

import django
django.get_version()
Aniseed answered 16/2, 2018 at 9:50 Comment(0)
Z
3

Python version supported by Django version

Django version        Python versions
----------------------------------------
1.0                   2.3, 2.4, 2.5, 2.6
1.1                   2.3, 2.4, 2.5, 2.6
1.2                   2.4, 2.5, 2.6, 2.7
1.3                   2.4, 2.5, 2.6, 2.7
1.4                   2.5, 2.6, 2.7
1.5                   2.6.5, 2.7 and 3.2.3, 3.3 (experimental)
1.6                   2.6.5, 2.7 and 3.2.3, 3.3
1.11                  2.7, 3.4, 3.5, 3.6, 3.7 (added in 1.11.17)
2.0                   3.4, 3.5, 3.6, 3.7
2.1, 2.2              3.5, 3.6, 3.7

To verify that Django can be seen by Python, type python from your shell. Then at the Python prompt, try to import Django:

>>> import django
>>> print(django.get_version())
2.1
>>> django.VERSION
(2, 1, 4, 'final', 0)
Zink answered 8/1, 2019 at 9:58 Comment(0)
I
2

If you want to make Django version comparison, you could use django-nine (pip install django-nine). For example, if Django version installed in your environment is 1.7.4, then the following would be true.

from nine import versions

versions.DJANGO_1_7 # True
versions.DJANGO_LTE_1_7 # True
versions.DJANGO_GTE_1_7 # True
versions.DJANGO_GTE_1_8 # False
versions.DJANGO_GTE_1_4 # True
versions.DJANGO_LTE_1_6 # False
Icehouse answered 17/2, 2015 at 12:26 Comment(0)
U
2

You can get django version by running the following command in a shell prompt

python -m django --version

If Django is installed, you should see the version otherwise you’ll get an error telling “No module named django”.

Unreasonable answered 20/11, 2017 at 8:7 Comment(0)
B
1

you can import django and then type print statement as given below to know the version of django i.e. installed on your system:

>>> import django
>>> print(django.get_version())
2.1
Boyar answered 14/8, 2018 at 6:59 Comment(0)
B
1

Open your CMD or Terminal and run any of the following commands

django-admin --version
        or
python3 -m django --version
        or
pip freeze
Base answered 10/7, 2021 at 9:28 Comment(0)
S
1

From your code, you can get the version of Django by using any of the two below.

import django
print(django.__version__)
# '3.1.5'
print(django.VERSION)
# (3, 1, 5, 'final', 0)

or from your terminal, you can run

django-admin --version
Seger answered 15/12, 2021 at 12:26 Comment(0)
L
0

enter image description hereIt's very simple open the CLI(command line or any IDE) wherever you installed python and Django just type,

django-admin --version

see here I have installed the latest Python and Django in my system and the result is shown in fig.

Lucre answered 17/7, 2021 at 5:29 Comment(0)
C
0

There are two more methods to get the Version (of Django and other packages). Both of them need a version variable for the package to get the version. According to PEP-396 the __version__variable should be set for every Python module.


Method 1 - Get version from filesystem

With that in mind, you know how to get the version for almost every Django/Python package. Look inside the __init__.py of the package root. So if you are a fast at navigating through the filesystem, this can be a very universal way of getting the Version of any package inside your site-package (virtual environment).


Method 2 - Django Debug Toolbar

There is a very helpful tool that is called django debug toolbar. If you use it (very recommendable for Django development) you can list the versions of all apps that have a package.__version__.

django-debug-toolbar-versions

Clint answered 13/10, 2021 at 8:13 Comment(0)
K
0

These commands below get Django version:

django-admin --version
python manage.py --version

But, these commands below get error:

django-admin -v
python manage.py -v
Kareykari answered 29/7, 2023 at 2:41 Comment(0)
G
0

To check the Django version installed on your Windows PC,

In a Terminal session, run:

py -m Django --version

Or in a Python REPL:

import Django
django.get_version()

To check the Django version installed in your active virtual environment (venv), run:

Django-admin --version

Note that the Django version installed on your PC might be different from the version installed in your active virtual environment.

Golf answered 18/11, 2023 at 0:51 Comment(0)
B
0

pip freeze | grep Django

This will give you the version of the Django which you use

Beaston answered 9/4, 2024 at 13:25 Comment(0)
H
-1

go the setting of the Django Project. there find your Django Version.

Helsie answered 14/11, 2020 at 11:38 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.