Comment vérifier la version de Django

547

Je dois utiliser Python et Django pour notre application. J'ai donc deux versions de Python, 2.6 et 2.7. Maintenant, j'ai installé Django. J'ai pu exécuter l'exemple d'application pour tester avec succès Django. Mais comment puis-je m'assurer que Django utilise la version 2.6 ou 2.7 et quelle version des modules Django utilise?

maheshgupta024
la source
49
Chemin le plus court -python3 -m django --version
Aniket Thakur
8
Dans mon installation, python3 n'est pas reconnu. Cela fonctionne: python -m django --version
Antti A

Réponses:

672

Django 1.5 prend en charge Python 2.6.5 et versions ultérieures.

Si vous êtes sous Linux et souhaitez vérifier la version Python que vous utilisez, exécutez-la à python -Vpartir de la ligne de commande.

Si vous souhaitez vérifier la version de Django, ouvrez une console Python et tapez

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
bcoughlan
la source
Plongez dans env avant de vérifier la version, sinon aucun module nommé django.
EngineSense
380

Fondamentalement, la même chose que la réponse de bcoughlan , mais ici, c'est comme une commande exécutable:

$ python -c "import django; print(django.get_version())"
2.0
Brady Emerson
la source
Combiner Brady Emerson et bcoughlan: python -c "import django; print(django.VERSION)"retours (1, 8, 5, 'final', 0)
David Gleba
Vous devriez faire à la python -c "import django; print(django.__version__)"place. Il renvoie également '2.2.4'(c'est juste un appel àget_version() ) et est la norme suivie par la plupart des autres bibliothèques car il est défini dans PEP 8 . Il fonctionne depuis Django 1.8
Boris
213

Si vous avez installé l'application:

$ django-admin.py version
2.0
justi
la source
En mai 2018 (la date à laquelle j'ai testé à nouveau cette réponse), il affiche la version 1.11.5 malgré l'installation de 2.0.1. Mais >> django.VERSIONen shell python affiche la bonne version
Alex Jolig
1
cela a fonctionné pour moi: ubuntu 18.04, virtualenv avec P 3.6 et Django 2.2
Carmine Tambascia
1
Beau travail génial
Phok Chanrithisak
97

Accédez au répertoire de base de votre projet Django et faites:

./manage.py --version
nik7
la source
53
>>> import django
>>> print(django.get_version())
1.6.1

J'utilise l' IDLE (GUI Python).

Mtech
la source
41

Si vous avez pip , vous pouvez également faire un

gel de pip
et il montrera votre version de tous les composants, y compris Django.

Vous pouvez le diriger via grep pour obtenir uniquement la version de Django. C'est,

josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
Josh Brown
la source
36

Pour Python :

import sys
sys.version

Pour Django (comme mentionné par d'autres ici):

import django
django.get_version()

Le problème potentiel lié à la simple vérification de la version est que les versions sont mises à niveau et que le code peut donc devenir obsolète. Vous voulez vous assurer que '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Une comparaison de chaîne normale échouerait dans la dernière comparaison:

>>> '1.7.5' < '1.7.10'
False

La solution consiste à utiliser StrictVersion à partir de distutils .

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
James Bradbury
la source
2
Qu'en est-il de l'utilisation django.VERSION, qui est déjà un tuple? Je suis sûr que faire django.VERSION >= (1, 8)fonctionnera toujours comme prévu.
Flimm
31

Comme vous dites que vous avez deux versions de python, je suppose qu'elles sont dans des environnements virtuels différents (par exemple venv) ou peut-être des environnements conda .

Lorsque vous avez installé django, c'était probablement dans un seul environnement. Il est possible que vous ayez deux versions différentes de django, une pour chaque version de python.

Depuis un terminal Unix / Mac, vous pouvez vérifier votre version python comme suit:

$ python --version

Si vous voulez connaître la source:

$ which python

Et pour vérifier la version de django:

$ python -m django --version
Alexandre
la source
18

Il existe différentes façons d'obtenir la version de Django. Vous pouvez utiliser l'un des éléments ci-dessous selon vos besoins.

Remarque: Si vous travaillez dans un environnement virtuel, veuillez charger votre environnement python


Commandes de terminal

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

Commandes du shell Django

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

(N'hésitez pas à modifier cette réponse, si vous avez une sorte de correction ou si vous souhaitez ajouter des informations supplémentaires.)

Vishal Nagda
la source
10

Pour vérifier à l'aide d'un shell Python, procédez comme suit.

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

Si vous souhaitez le faire dans le shell Unix / Linux avec une seule ligne, faites

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

Une fois que vous avez développé une application, vous pouvez vérifier la version directement en utilisant ce qui suit.

python manage.py runserver --version
kmario23
la source
10
django-admin --version
python manage.py --version
pip freeze | grep django
Vishnu Kiran
la source
Vous devrez utiliser python manage.py --versionRemarquez le double-
Shawnzam
@Shawnzam oui bien sûr une faute de frappe .. Merci beaucoup..Réponse éditée
Vishnu Kiran
6

Django utilisera la version de Python spécifiée par la variable d'environnement PYTHONPATH. Vous pouvez utiliser echo $PYTHONPATHdans un shell pour déterminer quelle version sera utilisée.

Les versions de module utilisées par Django seront les versions de module installées sous la version de Python spécifiée par PYTHONPATH.

George Cummins
la source
5

exécuter pip listsur LINUX TERMINAL et trouver Django et sa version sur la liste

exécuter pip freezesur cmd sur Windows

Avinash Bakshi
la source
5

Version Django ou toute autre version de package

ouvrir le terminal ou l'invite de commande

type

pip show django

ou

pip3 show django

vous pouvez trouver n'importe quelle version de package ...
exemple

pip show tensorflow

pip show numpy 

etc....

Muhammad Shabin
la source
Je préfère la simplicité de cette réponse. pip freezemontre une tonne de merde supplémentaire si vous avez ajouté un paquet de paquets.
DukeSilver
4

Vous pouvez aussi le faire sans Python. Tapez simplement ceci dans votre répertoire Django:

cat __init__.py | grep VERSION

Et vous obtiendrez quelque chose comme:

VERSION = (1, 5, 5, 'final', 0)
Alex Babak
la source
1
C'est génial lorsque vous ne voulez pas activer l'env virtuel juste pour obtenir une valeur, ou que vous utilisez quelque chose comme AWS Elastic Beanstalk et ne pouvez pas activer l'env virtuel.
rjferguson
1
@rjferguson vous n'avez pas besoin d'activer votre env pour faire un pip freeze/ python -c "import <module>; <module>.VERSION". Vous pouvez simplement y faire référence: /path/to/env/bin/python -c "<command>"ou si vous voulez installer pip / utilisation, même chose: /path/to/env/bin/pip freeze. J'utilise cela tout le temps, spécialement lorsque je suis connecté en tant que root et que tout mon code d'application fonctionne comme www-dataje le fais: sudo su www-data -c "/path/to/env/bin/pip install <module>"et ne clignote même pas. (je sais que c'est presque 2 ans plus tard, et vous le savez probablement maintenant - c'est plus pour le prochain gars)
Javier Buzzi
> sans Python >> python -c
Alex Babak
4

Il existe un module de versions d'utils non documenté dans django

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

Avec cela, vous pouvez obtenir la version normale sous forme de chaîne ou un tuple de version détaillée:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
yellowcap
la source
4

Tapez votre CMD ou terminal:

python -m django --version
Anubhav Madhav
la source
3

Je pensais que la façon la plus pythonique était:

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

Cela est directement lié à setup.py: https://github.com/django/django/blob/master/setup.py#L37

C'est certainement la meilleure façon d'obtenir le numéro de version de N'IMPORTE QUEL paquet!

Il y a aussi distutils

>>> 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

Quant à la pythonversion, je suis d'accord avec @jamesdradbury

>>> 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)]'

Lier le tout ensemble:

>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True
Javier Buzzi
la source
2

Si vous voulez faire une comparaison de version de Django, vous pouvez utiliser django-nine (pip install django-nine). Par exemple, si la version de Django installée dans votre environnement est 1.7.4, alors ce qui suit serait vrai.

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
Artur Barseghyan
la source
2

Tapez la commande suivante dans le shell Python

import django
django.get_version()
Baishakhi Dasgupta
la source
2

Après Django 1.0, vous pouvez simplement le faire

$ django-admin --version
1.11.10
Mark White
la source
1

Vous pouvez obtenir la version de django en exécutant la commande suivante dans une invite de shell

python -m django --version

Si Django est installé, vous devriez voir la version sinon vous obtiendrez une erreur indiquant «Aucun module nommé django».

Amit baderia
la source
1

vous pouvez importer django puis taper l'instruction print comme indiqué ci-dessous pour connaître la version de django installée sur votre système:

>>> import django
>>> print(django.get_version())
2.1
Sonia Rani
la source
1

Version Python prise en charge par la version Django

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

Pour vérifier que Django peut être vu par Python, tapez python depuis votre shell. Ensuite, à l'invite Python, essayez d'importer Django:

>>> import django
>>> print(django.get_version())
2.1
>>> django.VERSION
(2, 1, 4, 'final', 0)
shafik
la source
0

Tapez python -m django --version ou tapez simplement pip freezepour voir toutes les versions des modules installés, y compris Django.

suresh
la source
il n'y a aucune raison que cela soit sous-voté, c'est l'une des réponses les plus concises.
tfantina
pourquoi est-ce downvoted ??
Azima