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?


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)

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

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

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

53
>>> import django
>>> print(django.get_version())
1.6.1

J'utilise l' IDLE (GUI Python).


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

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

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

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


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

10
django-admin --version
python manage.py --version
pip freeze | grep django

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.


5

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

exécuter pip freezesur cmd sur Windows


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


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)

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



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

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


2

Après Django 1.0, vous pouvez simplement le faire

$ django-admin --version
1.11.10

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


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

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)

0

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.