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?


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)

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

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

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

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

Estou usando o IDLE (Python GUI).


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

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

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

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


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

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

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.


5

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

executar pip freezeno cmd no Windows


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)

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

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


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


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

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


2

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

$ django-admin --version
1.11.10

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


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

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)

0

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


Não há razão para que isso seja minimizado, é uma das respostas mais concisas.
tfantina 21/04

por que isso é diminuído?
Azima
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.