Cómo verificar la versión de Django

547

Tengo que usar Python y Django para nuestra aplicación. Entonces tengo dos versiones de Python, 2.6 y 2.7. Ahora he instalado Django. Podría ejecutar la aplicación de muestra para probar Django con éxito. Pero, ¿cómo me aseguro de que Django use la versión 2.6 o 2.7 y qué versión de módulos usa Django?

maheshgupta024
fuente
49
Camino más corto -python3 -m django --version
Aniket Thakur
8
En mi instalación, python3 no se reconoce. Esto funciona: python -m django --version
Antti A

Respuestas:

672

Django 1.5 es compatible con Python 2.6.5 y versiones posteriores.

Si está bajo Linux y desea verificar la versión de Python que está utilizando, ejecute python -Vdesde la línea de comandos.

Si desea verificar la versión de Django, abra una consola de Python y escriba

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
bcoughlan
fuente
Simplemente sumérgete en env antes de verificar la versión, de lo contrario, ningún módulo llamado django.
EngineSense
380

Básicamente lo mismo que la respuesta de bcoughlan , pero aquí es como un comando ejecutable:

$ python -c "import django; print(django.get_version())"
2.0
Brady Emerson
fuente
Combinando a Brady Emerson y bcoughlan: python -c "import django; print(django.VERSION)"regresa (1, 8, 5, 'final', 0)
David Gleba
Deberías hacer en su python -c "import django; print(django.__version__)"lugar. También regresa '2.2.4'(es solo una llamadaget_version() ) y es el estándar seguido por la mayoría de las otras bibliotecas porque está definido en PEP 8 . Funciona desde Django 1.8
Boris
213

Si ha instalado la aplicación:

$ django-admin.py version
2.0
justi
fuente
En mayo de 2018 (la fecha en que probé esta respuesta nuevamente), muestra la versión como 1.11.5 a pesar de haber instalado 2.0.1. Pero >> django.VERSIONen Python Shell muestra la versión correcta
Alex Jolig
1
esto funcionó para mí: ubuntu 18.04, virtualenv con P 3.6 y Django 2.2
Carmine Tambascia el
1
Buen trabajo genial
Phok Chanrithisak
97

Vaya al directorio de inicio de su proyecto Django y haga:

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

Estoy usando IDLE (Python GUI).

Mtech
fuente
41

Si tienes pip , también puedes hacer un

congelación de pepita
y mostrará su versión de todos los componentes, incluido Django.

Puede canalizarlo a través de grep para obtener solo la versión de Django. Es decir,

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

Para Python :

import sys
sys.version

Para Django (como lo mencionan otros aquí):

import django
django.get_version()

El problema potencial con simplemente verificar la versión, es que las versiones se actualizan y el código puede quedar desactualizado. Desea asegurarse de que '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Una comparación de cadena normal fallaría en la última comparación:

>>> '1.7.5' < '1.7.10'
False

La solución es usar StrictVersion de distutils .

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
James Bradbury
fuente
2
¿Qué pasa con el uso django.VERSION, que ya viene como una tupla? Estoy bastante seguro de que hacerlo django.VERSION >= (1, 8)siempre funcionará según lo previsto.
Flimm
31

Como usted dice que tiene dos versiones de python, supongo que están en entornos virtuales diferentes (por ejemplo, venv) o quizás en entornos conda .

Cuando instaló django, probablemente solo estaba en un entorno. Es posible que tenga dos versiones diferentes de django, una para cada versión de python.

Desde un terminal Unix / Mac, puede verificar su versión de Python de la siguiente manera:

$ python --version

Si quieres saber la fuente:

$ which python

Y para verificar la versión de django:

$ python -m django --version
Alejandro
fuente
18

Hay varias formas de obtener la versión de Django. Puede utilizar cualquiera de los siguientes datos según sus requisitos.

Nota: Si está trabajando en un entorno virtual, cargue su entorno de Python


Comandos de terminal

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

Comandos de Shell Django

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

(Siéntase libre de modificar esta respuesta, si tiene algún tipo de corrección o si desea agregar más información relacionada).

Vishal Nagda
fuente
10

Para verificar con un shell de Python, haga lo siguiente.

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

Si desea hacerlo en el shell Unix / Linux con una sola línea, entonces haga

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

Una vez que haya desarrollado una aplicación, puede verificar la versión directamente usando lo siguiente.

python manage.py runserver --version
kmario23
fuente
10
django-admin --version
python manage.py --version
pip freeze | grep django
Vishnu Kiran
fuente
Tendrá que usar python manage.py --versionNote the double-
Shawnzam
@Shawnzam sí, por supuesto, un error tipográfico ... Muchas gracias ... Respuesta editada
Vishnu Kiran
6

Django usará la versión de Python especificada por la variable de entorno PYTHONPATH. Puede usarlo echo $PYTHONPATHen un shell para determinar qué versión se usará.

Las versiones de módulo utilizadas por Django serán las versiones de módulo instaladas bajo la versión de Python especificada por PYTHONPATH.

George Cummins
fuente
5

ejecutar pip listen LINUX TERMINAL y encontrar Django y su versión en la lista

ejecutar pip freezeen cmd en Windows

Avinash Bakshi
fuente
5

Versión de Django o cualquier otra versión de paquete

abra la terminal o el símbolo del sistema

tipo

pip show django

o

pip3 show django

puedes encontrar cualquier versión de paquete ...
ejemplo

pip show tensorflow

pip show numpy 

etc ....

Muhammad Shabin
fuente
Me gusta más la simplicidad de esta respuesta. pip freezemuestra una tonelada de basura extra si has incluido un montón de paquetes.
DukeSilver
4

También puedes hacerlo sin Python. Simplemente escriba esto en su directorio de Django:

cat __init__.py | grep VERSION

Y obtendrás algo como:

VERSION = (1, 5, 5, 'final', 0)
Alex Babak
fuente
1
Esto es excelente cuando no desea activar el entorno virtual solo para obtener un valor, o está utilizando algo como AWS Elastic Beanstalk y no puede activar el entorno virtual.
rjferguson
1
@rjferguson no necesita activar su env para hacer un pip freeze/ python -c "import <module>; <module>.VERSION". Simplemente puede hacer referencia a ella: /path/to/env/bin/python -c "<command>"o si desea instalar pip uso /, lo mismo: /path/to/env/bin/pip freeze. Lo uso todo el tiempo, especialmente cuando estoy conectado como root y todo el código de mi aplicación se ejecuta como lo www-datahago: sudo su www-data -c "/path/to/env/bin/pip install <module>"y ni siquiera parpadeo. (Sé que esto es casi 2 años después, y probablemente ya lo sepas ahora; esto es más para el próximo tipo)
Javier Buzzi
> sin Python >> python -c
Alex Babak
4

Hay un módulo de versiones de utilidades no documentadas en django

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

Con eso puede obtener la versión normal como cadena o una tupla de versión detallada:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
tapa amarilla
fuente
4

Escriba su CMD o terminal:

python -m django --version
Anubhav Madhav
fuente
3

Pensé que la forma más pitónica era:

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

Esto se vincula directamente con setup.py: https://github.com/django/django/blob/master/setup.py#L37

¡Definitivamente es la mejor manera de obtener el número de versión de CUALQUIER paquete!

También hay 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

En cuanto a la pythonversión, estoy de acuerdo con @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)]'

Atarlo todo junto:

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

Si desea hacer una comparación de versiones de Django, puede usar django-nine(pip install django-nine). Por ejemplo, si la versión de Django instalada en su entorno es 1.7.4, lo siguiente sería cierto.

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

Escriba el siguiente comando en el shell de Python

import django
django.get_version()
Baishakhi Dasgupta
fuente
2

Después de django 1.0 puedes hacer esto

$ django-admin --version
1.11.10
Mark White
fuente
1

Puede obtener la versión de django ejecutando el siguiente comando en un indicador de shell

python -m django --version

Si Django está instalado, debería ver la versión; de lo contrario, recibirá un error que dice "Ningún módulo llamado django".

Amit Baderia
fuente
1

puede importar django y luego escribir la declaración de impresión como se indica a continuación para conocer la versión de django, es decir, instalada en su sistema:

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

Versión de Python compatible con la versión de 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

Para verificar que Python pueda ver Django, escriba python desde su shell. Luego, en el indicador de Python, intente importar Django:

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

Simplemente escriba python -m django --version o escriba pip freezepara ver todas las versiones de los módulos instalados, incluido Django.

suresh
fuente
No hay razón para que esto sea rechazado en absoluto, es una de las respuestas más concisas.
tfantina
¿Por qué se rechaza esto?
Azima