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?


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)

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

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

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

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

Estoy usando IDLE (Python GUI).


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

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

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

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


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

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

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.


5

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

ejecutar pip freezeen cmd en Windows


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


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)

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



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

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


2

Después de django 1.0 puedes hacer esto

$ django-admin --version
1.11.10

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


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

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)

0

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.