691 votes

Comment vérifier la version de Django

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

98 votes

Voie la plus courte - python3 -m django --version

12 votes

Dans mon installation python3 n'est pas reconnu. Cela fonctionne : python -m django --version

1 votes

Je crois que, puisqu'une version quelque peu ancienne de Python est préinstallée sur les systèmes MacOS, un suffixe de "3" est nécessaire sur la commande "python" pour éviter toute confusion du côté du système d'exploitation quant à la version à utiliser. Ce n'est pas nécessaire sur les systèmes Windows donc la solution proposée par @AnttiA fonctionne parfaitement.

783voto

bcoughlan Points 6304

Django 1.5 prend en charge Python 2.6.5 et ultérieur.

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

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

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)

2 votes

Plongez simplement dans env avant de vérifier la version, sinon aucun module nommé django.

0 votes

Rappelez-vous les gars d'entrer dans l'environnement virtuel comme @EngineSense le souligne. Je suis tombé dans le même piège. Merci.

0 votes

Cela dit - AttributeError: module 'django' n'a pas d'attribut 'VERSION'

417voto

Brady Emerson Points 950

Essentiellement la même chose que la réponse de bcoughlan, mais la voici sous forme de commande exécutable :

$ python -c "import django; print(django.get_version())"
2.0

0 votes

Combinaison de Brady Emerson et bcoughlan: python -c "import django; print(django.VERSION)" retourne (1, 8, 5, 'final', 0)

0 votes

Tu devrais exécuter python -c "import django; print(django.__version__)" à la place. Cela renvoie également '2.2.4' (c'est juste un appel à get_version()) et c'est la norme suivie par la plupart des autres bibliothèques car c'est défini dans PEP 8. Cela fonctionne depuis Django 1.8

273voto

justi Points 424

Si vous avez installé l'application :

$ django-admin --version
3.2.6

0 votes

En mai 2018 (date à laquelle j'ai testé cette réponse à nouveau), la version affichée est la 1.11.5 malgré que j'aie installé la version 2.0.1. Cependant, >> django.VERSION dans la console Python affiche la bonne version

2 votes

Cela a fonctionné pour moi : Ubuntu 18.04, virtualenv avec Python 3.6 et Django 2.2

0 votes

Pour les anciennes versions, c'est django-admin.py --version. Selon la façon dont vous avez réalisé votre installation Python, vous pourriez même avoir besoin de python django-admin.py --version.

119voto

nik7 Points 604

Allez dans le répertoire de base de votre projet Django et exécutez :

./manage.py --version

0 votes

J'aime celui-ci car nous, les développeurs Django, utilisons souvent les fonctionnalités de manage.py. Vous pouvez également utiliser 'python manage.py version' (pas besoin de --)

38voto

James Bradbury Points 129

Pour Python:

import sys
sys.version

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

import django
django.get_version()

Le problème potentiel avec simplement vérifier la version, c'est que les versions sont mises à jour et donc le code peut 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 de distutils.

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True

4 votes

Que diriez-vous d'utiliser django.VERSION, qui vient déjà sous forme de tuple? Je suis assez sûr que faire django.VERSION >= (1, 8) fonctionnera toujours comme prévu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X