Come controllare la versione di Django


547

Devo usare Python e Django per la nostra applicazione. Quindi ho due versioni di Python, 2.6 e 2.7. Ora ho installato Django. Potrei eseguire l'applicazione di esempio per testare con successo Django. Ma come posso assicurarmi se Django utilizza la versione 2.6 o 2.7 e quale versione dei moduli utilizza Django?


49
Il modo più breve -python3 -m django --version
Aniket Thakur

8
Nella mia installazione python3 non è riconosciuto. Funziona: python -m django --version
Antti A

Risposte:


672

Django 1.5 supporta Python 2.6.5 e versioni successive.

Se sei su Linux e vuoi verificare la versione di Python che stai utilizzando, esegui python -Vdalla riga di comando.

Se vuoi controllare la versione di Django, apri una console Python e digita

>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)

Tuffati in env prima di controllare la versione, altrimenti nessun modulo chiamato django.
EngineSense,

380

Praticamente lo stesso della risposta di bcoughlan , ma qui è come un comando eseguibile:

$ python -c "import django; print(django.get_version())"
2.0

Combinando Brady Emerson e bcoughlan: python -c "import django; print(django.VERSION)"ritorna (1, 8, 5, 'final', 0)
David Gleba il

Dovresti python -c "import django; print(django.__version__)"invece fare . Restituisce anche '2.2.4'solo una chiamata aget_version() ) ed è lo standard seguito dalla maggior parte delle altre librerie perché è definito in PEP 8 . Funziona da Django 1.8
Boris il

213

Se hai installato l'applicazione:

$ django-admin.py version
2.0

A maggio 2018 (la data in cui ho provato di nuovo questa risposta), mostra la versione 1.11.5 nonostante abbia installato 2.0.1. Ma >> django.VERSIONnella shell di Python viene visualizzata la versione giusta
Alex Jolig

1
questo ha funzionato per me: ubuntu 18.04, virtualenv con P 3.6 e Django 2.2
Carmine Tambascia

1
Bel lavoro fantastico
Phok Chanrithisak il

97

Vai alla home directory del tuo progetto Django ed esegui:

./manage.py --version

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

Sto usando l' IDLE (Python GUI).


41

Se hai pip , puoi anche fare un

congelamento del pip
e mostrerà la tua versione di tutti i componenti incluso Django.

Puoi instradarlo attraverso grep per ottenere solo la versione di Django. Questo è,

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

36

Per Python :

import sys
sys.version

Per Django (come menzionato da altri qui):

import django
django.get_version()

Il potenziale problema con il semplice controllo della versione è che le versioni vengono aggiornate e quindi il codice può non essere aggiornato. Vuoi assicurarti che '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Un normale confronto di stringhe fallirebbe nell'ultimo confronto:

>>> '1.7.5' < '1.7.10'
False

La soluzione è utilizzare StrictVersion da distutils .

>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True

2
Che dire dell'utilizzo django.VERSION, che arriva già come una tupla? Sono abbastanza sicuro che django.VERSION >= (1, 8)funzionerà sempre come previsto.
Flimm,

31

Come dici di avere due versioni di Python, suppongo che si trovino in diversi ambienti virtuali (ad esempio, venv) o forse in ambienti conda .

Quando hai installato django, era probabilmente in un solo ambiente. È possibile che tu abbia due diverse versioni di Django, una per ogni versione di Python.

Da un terminale Unix / Mac, puoi controllare la tua versione di Python come segue:

$ python --version

Se vuoi conoscere la fonte:

$ which python

E per verificare la versione di Django:

$ python -m django --version

18

Esistono vari modi per ottenere la versione di Django. È possibile utilizzare uno dei seguenti dati di seguito in base alle proprie esigenze.

Nota: se si lavora in un ambiente virtuale, caricare l'ambiente Python


Comandi terminali

  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

Comandi 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

(Sentiti libero di modificare questa risposta, se hai qualche tipo di correzione o vuoi aggiungere ulteriori informazioni correlate.)


10

Per verificare usando una shell Python, procedere come segue.

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

Se desideri farlo nella shell Unix / Linux con una sola riga, allora fallo

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

Dopo aver sviluppato un'applicazione, è possibile controllare direttamente la versione utilizzando quanto segue.

python manage.py runserver --version

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

Dovrai usare python manage.py --versionNota il doppio-
Shawnzam,

@Shawnzam sì certo un errore di battitura .. Grazie mille..Risposta modificata
Vishnu Kiran

6

Django utilizzerà la versione di Python specificata dalla variabile d'ambiente PYTHONPATH. È possibile utilizzare echo $PYTHONPATHin una shell per determinare quale versione verrà utilizzata.

Le versioni del modulo utilizzate da Django saranno le versioni del modulo installate con la versione di Python specificata da PYTHONPATH.


5

correre pip list su LINUX TERMINAL e trovare Django e la sua versione nell'elenco

eseguire pip freezesu cmd su Windows


4

Puoi farlo anche senza Python. Digita questo nella tua directory di Django:

cat __init__.py | grep VERSION

E otterrai qualcosa come:

VERSION = (1, 5, 5, 'final', 0)

1
Questo è fantastico quando non vuoi attivare l'ENV virtuale solo per ottenere un valore, oppure stai usando qualcosa come AWS Elastic Beanstalk e non riesci ad attivare l'ENV virtuale.
rjferguson,

1
@rjferguson non devi attivare la tua env per fare un pip freeze/ python -c "import <module>; <module>.VERSION". Si può semplicemente fare riferimento a esso: /path/to/env/bin/python -c "<command>"o se si desidera installare pip / uso, stessa cosa: /path/to/env/bin/pip freeze. Lo uso sempre, specialmente quando sono loggato come root e tutto il mio codice dell'applicazione gira come www-datafaccio io: sudo su www-data -c "/path/to/env/bin/pip install <module>"e nemmeno lampeggiante. (So ​​che è quasi 2 anni dopo, e probabilmente lo sai ora - questo è più per il prossimo ragazzo)
Javier Buzzi

> senza Python >> python -c
Alex Babak,


4

Versione Django o qualsiasi altra versione del pacchetto

aprire il terminale o il prompt dei comandi

genere

pip show django

o

pip3 show django

puoi trovare qualsiasi versione del pacchetto ...
esempio

pip show tensorflow

pip show numpy 

eccetera....


Mi piace molto la semplicità di questa risposta. pip freezemostra un sacco di cazzate in più se hai fatto pip in un sacco di pacchetti.
DukeSilver l'


3

Ho pensato che il modo più pitonico fosse:

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

Questo si collega direttamente a setup.py: https://github.com/django/django/blob/master/setup.py#L37

È sicuramente il modo migliore per ottenere il numero di versione di QUALSIASI pacchetto!

Inoltre c'è 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

Per quanto riguarda la pythonversione, sono d'accordo 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)]'

Legare tutto insieme:

>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True

2

Se vuoi fare un confronto della versione di Django, puoi usare django-nine(pip install django-nine). Ad esempio, se la versione di Django installata nel tuo ambiente è 1.7.4, sarebbe vero quanto segue.

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

Dopo django 1.0 puoi semplicemente farlo

$ django-admin --version
1.11.10

1

È possibile ottenere la versione di Django eseguendo il comando seguente in un prompt della shell

python -m django --version

Se Django è installato, dovresti vedere la versione, altrimenti visualizzerai un errore che dice "Nessun modulo chiamato django".


1

puoi importare django e quindi digitare print statement come indicato di seguito per conoscere la versione di django cioè installata sul tuo sistema:

>>> import django
>>> print(django.get_version())
2.1

1

Versione Python supportata dalla versione 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

Per verificare che Django possa essere visto da Python, digita python dalla tua shell. Quindi al prompt di Python, prova a importare Django:

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

0

Basta digitare python -m django --version o digitare pip freezeper vedere tutte le versioni dei moduli installati, incluso Django.


nessuna ragione per cui questo deve essere minimizzato, è una delle risposte più concise.
tfantina,

perché questo è downvoted ??
Azima,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.