How to check Django version
Question:
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 succesfuly. But how do I make sure whether Django uses the 2.6 or 2.7 version and what version of modules Django uses?
Answers:
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)
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.
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
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,
[email protected]:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
If you have installed the application:
$ django-admin --version
3.2.6
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
>>> import django
>>> print(django.get_version())
1.6.1
I am using the IDLE (Python GUI).
Go to your Django project home directory and do:
./manage.py --version
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)
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
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
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
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)
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
Run pip list
in a Linux terminal and find Django and its version in the list:
Run pip freeze
on cmd on Windows.
django-admin --version
python manage.py --version
pip freeze | grep django
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”.
Type the following command in Python shell
import django
django.get_version()
After django 1.0 you can just do this
$ django-admin --version
1.11.10
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
python -m django --version
django-admin --version
or django-admin.py version
./manage.py --version
or python manage.py --version
pip freeze | grep Django
python -c "import django; print(django.get_version())"
python manage.py runserver --version
Django Shell Commands
import django
django.get_version()
OR
django.VERSION
from django.utils import version
version.get_version()
OR version.get_complete_version()
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.)
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
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)
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….
Simply type python -m django --version
or type pip freeze
to see all the versions of installed modules including Django.
Type in your CMD or terminal:
python -m django --version
go the setting of the Django Project. there find your Django Version.
Open your CMD or Terminal and run any of the following commands
django-admin --version
or
python3 -m django --version
or
pip freeze
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__.
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
Official Documentation
First:
python -m django --version
Second:
import django
print(django.get_version())
The yield keyword is used in the body of a function like a return statement, but instead of returning a value and terminating the function, yield produces a value and suspends the function’s execution. The function can then be resumed later on from where it left off, allowing it to produce a series of values over time, rather than computing them all at once and returning them in a list, for example.
Here is an example of a simple generator function that uses the yield keyword:
def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1
for number in count_up_to(5):
print(number)
This code will output the numbers 1 through 5, because the count_up_to function yields each number as it counts up to the specified maximum.
1
2
3
4
5
Generator functions are useful for producing large sequences of values, because they allow you to produce the values one at a time, rather than generating all of the values at once and storing them in memory. This can be more efficient when dealing with large data sets.
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 succesfuly. But how do I make sure whether Django uses the 2.6 or 2.7 version and what version of modules Django uses?
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)
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.
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
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,
[email protected]:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
If you have installed the application:
$ django-admin --version
3.2.6
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
>>> import django
>>> print(django.get_version())
1.6.1
I am using the IDLE (Python GUI).
Go to your Django project home directory and do:
./manage.py --version
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)
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
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
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
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)
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
Run pip list
in a Linux terminal and find Django and its version in the list:
Run pip freeze
on cmd on Windows.
django-admin --version
python manage.py --version
pip freeze | grep django
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”.
Type the following command in Python shell
import django
django.get_version()
After django 1.0 you can just do this
$ django-admin --version
1.11.10
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
python -m django --version
django-admin --version
ordjango-admin.py version
./manage.py --version
orpython manage.py --version
pip freeze | grep Django
python -c "import django; print(django.get_version())"
python manage.py runserver --version
Django Shell Commands
import django
OR
django.get_version()
django.VERSION
from django.utils import version
OR
version.get_version()version.get_complete_version()
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.)
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
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)
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….
Simply type python -m django --version
or type pip freeze
to see all the versions of installed modules including Django.
Type in your CMD or terminal:
python -m django --version
go the setting of the Django Project. there find your Django Version.
Open your CMD or Terminal and run any of the following commands
django-admin --version
or
python3 -m django --version
or
pip freeze
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__.
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
Official Documentation
First:
python -m django --version
Second:
import django
print(django.get_version())
The yield keyword is used in the body of a function like a return statement, but instead of returning a value and terminating the function, yield produces a value and suspends the function’s execution. The function can then be resumed later on from where it left off, allowing it to produce a series of values over time, rather than computing them all at once and returning them in a list, for example.
Here is an example of a simple generator function that uses the yield keyword:
def count_up_to(max):
count = 1
while count <= max:
yield count
count += 1
for number in count_up_to(5):
print(number)
This code will output the numbers 1 through 5, because the count_up_to function yields each number as it counts up to the specified maximum.
1
2
3
4
5
Generator functions are useful for producing large sequences of values, because they allow you to produce the values one at a time, rather than generating all of the values at once and storing them in memory. This can be more efficient when dealing with large data sets.