Como verificar a versão do Django

547

Eu tenho que usar Python e Django para nossa aplicação. Então, eu tenho duas versões do Python, 2.6 e 2.7. Agora eu instalei o Django. Eu poderia executar o aplicativo de amostra para testar o Django com sucesso. Mas como garantir que o Django use a versão 2.6 ou 2.7 e qual versão dos módulos o Django usa?

maheshgupta024
fonte
49
Maneira mais python3 -m django --version
curta
8
Na minha instalação python3 não é reconhecido. Isso funciona: python -m django --version
Antti A

Respostas:

672

O Django 1.5 suporta Python 2.6.5 e posterior.

Se você estiver no Linux e quiser verificar a versão do Python que está usando, execute a python -Vpartir da linha de comando.

Se você quiser verificar a versão do Django, abra um console Python e digite

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
bcoughlan
fonte
Apenas mergulhe no env antes de verificar a versão, caso contrário, nenhum módulo chamado django.
EngineSense
380

Basicamente, o mesmo que a resposta de bcoughlan , mas aqui está como um comando executável:

$ python -c "import django; print(django.get_version())"
2.0
Brady Emerson
fonte
Combinando Brady Emerson e bcoughlan: python -c "import django; print(django.VERSION)"retornos (1, 8, 5, 'final', 0)
David Gleba
Você deveria fazer isso python -c "import django; print(django.__version__)". Ele também retorna '2.2.4'apenas uma chamada paraget_version() ) e é o padrão seguido pela maioria das outras bibliotecas porque está definido no PEP 8 . Funciona desde o Django 1.8
Boris
213

Se você instalou o aplicativo:

$ django-admin.py version
2.0
justi
fonte
Em maio de 2018 (a data em que testei esta resposta novamente), ele mostra a versão como 1.11.5, apesar de ter instalado o 2.0.1. Mas >> django.VERSIONem Python shell exibe a versão correta
Alex Jolig
1
Isso funcionou para mim: ubuntu 18.04, virtualenv com P 3.6 e Django 2.2
Carmine Tambascia
1
Bom trabalho ótimo
Phok Chanrithisak 18/02
97

Vá para o diretório inicial do seu projeto Django e faça:

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

Estou usando o IDLE (Python GUI).

Mtech
fonte
41

Se você tem pip , você também pode fazer um

congelamento de pip
e mostrará sua versão de todos os componentes, incluindo o Django.

Você pode passar pelo grep para obter apenas a versão do Django. Isso é,

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

Para Python :

import sys
sys.version

Para o Django (como mencionado por outros aqui):

import django
django.get_version()

O possível problema com a simples verificação da versão é que as versões são atualizadas e o código pode ficar desatualizado. Você quer ter certeza de que '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Uma comparação de string normal falharia na última comparação:

>>> '1.7.5' < '1.7.10'
False

A solução é usar StrictVersion de distutils .

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
James Bradbury
fonte
2
Que tal usar django.VERSION, que já vem como uma tupla? Tenho certeza de que fazer django.VERSION >= (1, 8)sempre funcionará como pretendido.
Flimm
31

Como você diz que tem duas versões do python, presumo que elas estejam em ambientes virtuais diferentes (por exemplo, venv) ou talvez ambientes conda .

Quando você instalou o django, era provável que apenas em um ambiente. É possível que você tenha duas versões diferentes do django, uma para cada versão do python.

Em um terminal Unix / Mac, você pode verificar sua versão do python da seguinte maneira:

$ python --version

Se você deseja conhecer a fonte:

$ which python

E para verificar a versão do django:

$ python -m django --version
Alexander
fonte
18

Existem várias maneiras de obter a versão do Django. Você pode usar qualquer um dos itens abaixo, de acordo com seus requisitos.

Nota: Se você estiver trabalhando em um ambiente virtual, carregue seu ambiente python


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

Comandos do Django Shell

  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

(Sinta-se à vontade para modificar esta resposta, se você tiver algum tipo de correção ou quiser adicionar mais informações relacionadas.)

Vishal Nagda
fonte
10

Para verificar usando um shell Python, faça o seguinte.

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

Se você deseja fazer isso no shell Unix / Linux com uma única linha, faça

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

Depois de desenvolver um aplicativo, você pode verificar a versão diretamente usando o seguinte.

python manage.py runserver --version
kmario23
fonte
10
django-admin --version
python manage.py --version
pip freeze | grep django
Vishnu Kiran
fonte
Você precisará usar python manage.py --versionNote the double-
Shawnzam
@ Shawnzam sim, claro, um erro de digitação .. Muito obrigado .. Resposta editada
Vishnu Kiran
6

O Django usará a versão do Python especificada pela variável de ambiente PYTHONPATH. Você pode usar echo $PYTHONPATHem um shell para determinar qual versão será usada.

As versões do módulo usadas pelo Django serão as versões do módulo instaladas na versão do Python especificada pelo PYTHONPATH.

George Cummins
fonte
5

execute pip listno LINUX TERMINAL e encontre o Django e sua versão na lista

executar pip freezeno cmd no Windows

Avinash Bakshi
fonte
4

Você pode fazer isso sem o Python também. Basta digitar isso no seu diretório Django:

cat __init__.py | grep VERSION

E você terá algo como:

VERSION = (1, 5, 5, 'final', 0)
Alex Babak
fonte
1
Isso é ótimo quando você não deseja ativar o ambiente virtual apenas para obter um valor ou está usando algo como o AWS Elastic Beanstalk e não pode ativar o ambiente virtual.
rjferguson
1
@rjferguson você não precisa ativar o seu env para fazer um pip freeze/ python -c "import <module>; <module>.VERSION". Você pode simplesmente fazer referência a ela: /path/to/env/bin/python -c "<command>"ou se você deseja instalar pip uso /, a mesma coisa: /path/to/env/bin/pip freeze. Eu uso isso o tempo todo, especialmente quando estou logado como raiz e todo o código do meu aplicativo é executado como www-dataeu: sudo su www-data -c "/path/to/env/bin/pip install <module>"e nem sequer pisquei. (eu sei que isso é quase 2 anos mais tarde, e você provavelmente sabe sobre isso agora - isso é mais para o cara ao lado)
Javier Buzzi
> sem Python >> python -c
Alex Babak
4

Existe um módulo de versões de utilitários não documentado no django

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

Com isso, você pode obter a versão normal como string ou uma tupla detalhada da versão:

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

Versão do Django ou qualquer outra versão do pacote

abra o terminal ou prompt de comando

tipo

pip show django

ou

pip3 show django

você pode encontrar qualquer versão do pacote ...
exemplo

pip show tensorflow

pip show numpy 

etc ....

Muhammad Shabin
fonte
Eu gosto mais da simplicidade desta resposta. pip freezemostra uma tonelada de porcaria extra se você instalou um monte de pacotes.
DukeSilver 11/03
4

Digite seu CMD ou terminal:

python -m django --version
Anubhav Madhav
fonte
3

Eu pensei que a maneira mais pitônica era:

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

Isso está diretamente relacionado ao setup.py: https://github.com/django/django/blob/master/setup.py#L37

É definitivamente a melhor maneira de obter o número da versão de QUALQUER pacote!

Também existe 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

Quanto à pythonversão, concordo com @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)]'

Amarrando tudo junto:

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

Se você quiser fazer uma comparação da versão do Django, você pode usar django-nine(pip install django-nine). Por exemplo, se a versão do Django instalada em seu ambiente for 1.7.4, o seguinte seria verdadeiro.

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

Digite o seguinte comando no shell Python

import django
django.get_version()
Baishakhi Dasgupta
fonte
2

Após o django 1.0, você pode fazer isso

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

Você pode obter a versão do django executando o seguinte comando em um prompt de shell

python -m django --version

Se o Django estiver instalado, você deverá ver a versão, caso contrário, receberá um erro dizendo "Nenhum módulo chamado django".

Amit baderia
fonte
1

você pode importar o django e digitar print statement como indicado abaixo para conhecer a versão do django, isto é, instalada no seu sistema:

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

Versão Python suportada pela versão 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 se o Django pode ser visto pelo Python, digite python no seu shell. Então, no prompt do Python, tente importar o Django:

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

Simplesmente digite python -m django --version ou digite pip freezepara ver todas as versões dos módulos instalados, incluindo o Django.

suresh
fonte
Não há razão para que isso seja minimizado, é uma das respostas mais concisas.
tfantina 21/04
por que isso é diminuído?
Azima