Ich muss Python und Django für unsere Anwendung verwenden. Ich habe also zwei Versionen von Python, 2.6 und 2.7. Jetzt habe ich Django installiert. Ich konnte die Beispielanwendung zum Testen von Django erfolgreich ausführen. Aber wie stelle ich sicher, ob Django die Version 2.6 oder 2.7 verwendet und welche Modulversion Django verwendet?
Django 1.5 unterstützt Python 2.6.5 und höher.
Wenn Sie unter Linux sind und die verwendete Python-Version überprüfen möchten, führen Sie python -V
in der Befehlszeile aus.
Wenn Sie die Django-Version überprüfen möchten, öffnen Sie eine Python-Konsole und geben Sie ein
>>> import Django
>>> Django.VERSION
(2, 0, 0, 'final', 0)
Im Grunde dasselbe wie bcoughlans Antwort , aber hier ist es ein ausführbarer Befehl:
$ python -c "import Django; print(Django.get_version())"
2.0
Wenn Sie die Anwendung installiert haben:
$ Django-admin.py version
2.0
Gehen Sie in Ihr Django Projekt-Home-Verzeichnis und führen Sie folgende Schritte aus:
./manage.py --version
>>> import Django
>>> print(Django.get_version())
1.6.1
Ich verwende die IDLE (Python-GUI).
Wenn Sie pip haben, können Sie auch eine
pip einfrierenund es wird Ihre Django-Version angezeigt.
Sie können es durch grep leiten, um nur die Django-Version zu erhalten. Das ist,
[email protected]:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
Für Python :
import sys
sys.version
Für Django (wie von anderen hier erwähnt):
import Django
django.get_version()
Das Problem bei der einfachen Überprüfung der Version besteht darin, dass die Versionen aktualisiert werden und der Code daher möglicherweise nicht mehr aktuell ist. Sie möchten sicherstellen, dass '1.7' <'1.7.1' <'1.7.5' <'1.7.10' ist. Ein normaler Stringvergleich würde im letzten Vergleich fehlschlagen:
>>> '1.7.5' < '1.7.10'
False
Die Lösung ist die Verwendung von StrictVersion von distutils .
>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
Geben Sie an der Eingabeaufforderung Folgendes ein:
Django-admin.py version
Wenn Django installiert ist, wird die aktuelle Version gedruckt (z. B. 1.6.5
).
Andernfalls gibt die Shell eine Fehlermeldung aus.
Wie Sie sagen, Sie haben zwei Versionen von Python, nehme ich an, dass sie sich in unterschiedlichen virtuellen Umgebungen (z. B. venv) oder vielleicht conda-Umgebungen befinden.
Bei der Installation von Django war dies wahrscheinlich nur in einer Umgebung möglich. Es ist möglich, dass Sie zwei verschiedene Versionen von Django haben, eine für jede Version von Python.
In einem Unix/Mac-Terminal können Sie Ihre Python-Version wie folgt überprüfen:
$ python --version
Wenn Sie die Quelle wissen wollen:
$ which python
Und um die Version von Django zu überprüfen:
$ python -m Django --version
Es gibt verschiedene Möglichkeiten, um die Django Version zu erhalten. Sie können eine der folgenden Optionen verwenden, die Ihren Anforderungen entsprechen.
Hinweis: Wenn Sie in einer virtuellen Umgebung arbeiten, laden Sie bitte Ihre python Umgebung
python -m Django --version
Django-admin --version
Oder Django-admin.py version
./manage.py --version
Oder python manage.py --version
pip freeze | grep Django
python -c "import Django; print(Django.get_version())"
python manage.py runserver --version
import Django django.get_version()
OR Django.VERSION
from Django.utils import version version.get_version()
OR version.get_complete_version()
import pkg_resources pkg_resources.get_distribution('Django').version
(Fühlen Sie sich frei, diese Antwort zu ändern, wenn Sie irgendeine Art von Korrektur haben oder weitere verwandte Informationen hinzufügen möchten.)
Django-admin --version
python manage.py --version
pip freeze | grep Django
Gehen Sie zur Konsole und geben Sie Folgendes ein:
Django-admin --version
UPDATE
in letzter Zeit habe ich festgestellt, dass der richtige Weg zur Python-Shell ist und die Version dort überprüft:
$ python
>> import Django
>> Django.VERSION
Führen Sie folgende Schritte aus, um die Verwendung einer Python-Shell zu überprüfen.
>>>from Django import get_version
>>> get_version()
Wenn Sie dies in Unix/Linux Shell mit einer einzigen Zeile tun möchten, tun Sie dies
python -c 'import Django; print(Django.get_version())'
Nachdem Sie eine Anwendung entwickelt haben, können Sie die Version direkt überprüfen, indem Sie Folgendes verwenden.
python manage.py runserver --version
starte pip list
auf LINUX TERMINAL und finde Django und seine Version in der Liste
führen Sie pip freeze
auf cmd unter Windows aus
Django verwendet die Python-Version, die in der Umgebungsvariablen PYTHONPATH angegeben ist. Sie können echo $PYTHONPATH
in einer Shell verwenden, um zu bestimmen, welche Version verwendet wird.
Die von Django verwendeten Modulversionen sind die Modulversionen, die unter der von PYTHONPATH angegebenen Version von Python installiert werden.
In Django gibt es ein undokumentiertes Utils-Versionsmodul
https://github.com/Django/django/blob/master/Django/utils/version.py
Damit kann man die normale Version als String oder eine ausführliche Version Tuple bekommen:
>>> from Django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)
Das geht auch ohne Python. Geben Sie dies einfach in Ihr Django-Verzeichnis ein:
cat __init__.py | grep VERSION
Und du wirst etwas bekommen wie:
VERSION = (1, 5, 5, 'final', 0)
Ich dachte, der pythonic Weg war:
>>> import pkg_resources;
>>> pkg_resources.get_distribution('Django').version
'1.8.4'
Dies hängt direkt mit setup.py zusammen: https://github.com/Django/django/blob/master/setup.py#L37
Es ist definitiv der beste Weg, um die Versionsnummer von ANY-Paketen zu erhalten!
Es gibt auch 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
Was die python
-Version angeht, stimme ich @jamesdradbury zu
>>> 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)]'
Alles zusammenbinden:
>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6')
True
Wenn Sie einen Vergleich der Django-Version durchführen möchten, können Sie Django-nine
(pip install Django-nine) verwenden. Wenn beispielsweise die Django-Version 1.7.4 in Ihrer Umgebung installiert ist, gilt Folgendes.
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
Nach Django 1.0 können Sie dies einfach tun
$ Django-admin --version
1.11.10
Geben Sie den folgenden Befehl in Python Shell ein
import Django
django.get_version()
Wenn Sie in einer virtuellen Umgebung arbeiten, würde Ihnen nur Pip Freeze sagen, ob Sie dies nicht verwenden können
Django-admin --version
Python-Version wird von der Django-Version unterstützt
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
Um zu überprüfen, ob Django für Python sichtbar ist, geben Sie in Ihrer Shell Python ein. Versuchen Sie dann bei der Python-Eingabeaufforderung, Django zu importieren:
>>> import Django
>>> print(Django.get_version())
2.1
>>> Django.VERSION
(2, 1, 4, 'final', 0)
sie können Django importieren und dann wie unten angegeben die Anweisung print eingeben, um die Version von Django, d.
>>> import Django
>>> print(Django.get_version())
2.1
Sie können die Django-Version abrufen, indem Sie den folgenden Befehl in einer Shell-Eingabeaufforderung ausführen
python -m Django --version
Wenn Django installiert ist, sollten Sie die Version sehen. Andernfalls erhalten Sie die Fehlermeldung "Kein Modul namens Django".