Django sürümü nasıl kontrol edilir


547

Uygulamamız için Python ve Django kullanmalıyım . Python'un 2.6 ve 2.7 olmak üzere iki sürümü var. Şimdi Django'yu kurdum. Django'yu başarıyla test etmek için örnek uygulamayı çalıştırabilirim. Ancak Django'nun 2.6 veya 2.7 sürümünü kullanıp kullanmadığından ve Django'nun hangi modül sürümünü kullandığından nasıl emin olabilirim?


49
En kısa yol -python3 -m django --version
Aniket Thakur

8
Kurulumumda python3 tanınmıyor. Bu çalışıyor: python -m django - sürüm
Antti A

Yanıtlar:


672

Django 1.5, Python 2.6.5 ve sonraki sürümlerini destekler.

Linux altındaysanız ve kullandığınız Python sürümünü kontrol etmek istiyorsanız python -V, komut satırından çalıştırın .

Django sürümünü kontrol etmek istiyorsanız, bir Python konsolu açın ve şunu yazın

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

Sadece sürümü kontrol etmeden önce env dalış, aksi takdirde django adlı hiçbir modül.
EngineSense

380

Temel olarak bcoughlan'ın cevabı ile aynı , ancak burada yürütülebilir bir komut olarak:

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

Brady Emerson ve bcoughlan'ı birleştirmek: python -c "import django; print(django.VERSION)"dönüşler (1, 8, 5, 'final', 0)
David Gleba

Bunun python -c "import django; print(django.__version__)"yerine yapmalısınız . Ayrıca geri döner '2.2.4'( sadece bir çağrıdırget_version() ) ve PEP 8'de tanımlandığı için diğer kütüphanelerin izlediği standarttır . Django 1.8'den
Boris

213

Uygulamayı yüklediyseniz:

$ django-admin.py version
2.0

Mayıs 2018'de (bu cevabı tekrar test ettiğim tarih), 2.0.1'i yüklememe rağmen sürümü 1.11.5 olarak gösteriyor. Ama >> django.VERSIONpiton kabuğu doğru sürümü görüntüler
Alex Jolig

1
Bu benim için çalıştı: Ubuntu 18.04, P 3.6 ve Django 2.2 ile Virtualenv
Carmine Tambascia

1
Nice work great
Phok Chanrithisak


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

Ben kullanıyorum RÖLANTİ (Python GUI).


41

Eğer varsa Pip , ayrıca bir yapabilirsiniz

pip dondurma
ve Django dahil tüm bileşen sürümünüzü gösterecektir.

Sadece Django sürümünü almak için grep ile borulandırabilirsiniz. Yani,

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

36

İçin Python :

import sys
sys.version

Django için (burada başkaları tarafından belirtildiği gibi):

import django
django.get_version()

Sürümü kontrol etmenin olası sorunu, sürümlerin yükseltilmesidir ve böylece kod güncelliğini yitirebilir. '1.7' <'1.7.1' <'1.7.5' <'1.7.10' olduğundan emin olmak istiyorsunuz. Normal bir dize karşılaştırması son karşılaştırmada başarısız olur:

>>> '1.7.5' < '1.7.10'
False

Çözüm, dağıtıklardan StrictVersion kullanmaktır .

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

2
django.VERSIONZaten bir demet olarak gelen kullanmaya ne dersiniz ? Eminim ki django.VERSION >= (1, 8)her zaman amaçlandığı gibi çalışacaktır.
Flimm

31

Python'un iki sürümüne sahip olduğunuzu söylediğiniz gibi, bunların farklı sanal ortamlarda (örneğin venv) veya belki de conda ortamlarında olduklarını varsayıyorum .

Django'yu kurduğunuzda, muhtemelen tek bir ortamda bulunuyordu. Her bir python sürümü için bir tane olmak üzere iki farklı django sürümüne sahip olmanız mümkündür.

Bir Unix / Mac terminalinden, python sürümünüzü aşağıdaki gibi kontrol edebilirsiniz:

$ python --version

Kaynağı bilmek istiyorsanız:

$ which python

Ve django sürümünü kontrol etmek için:

$ python -m django --version

18

Django sürümünü almanın çeşitli yolları vardır. Gereksinimlerinize göre aşağıda verilenlerden herhangi birini kullanabilirsiniz.

Not: Sanal bir ortamda çalışıyorsanız, lütfen python ortamınızı yükleyin


Terminal Komutları

  1. python -m django --version
  2. django-admin --version veya django-admin.py version
  3. ./manage.py --version veya python manage.py --version
  4. pip freeze | grep Django
  5. python -c "import django; print(django.get_version())"
  6. python manage.py runserver --version

Django Kabuk Komutları

  1. import django django.get_version() VEYA django.VERSION
  2. from django.utils import version version.get_version() VEYA version.get_complete_version()
  3. import pkg_resources pkg_resources.get_distribution('django').version

(Bir tür düzeltmeniz varsa veya daha fazla ilgili bilgi eklemek istiyorsanız bu yanıtı değiştirmekten çekinmeyin.)


10

Bir Python kabuğu kullanarak kontrol etmek için aşağıdakileri yapın.

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

Tek bir satırla Unix / Linux kabuğunda yapmak istiyorsanız,

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

Bir uygulama geliştirdikten sonra, aşağıdakileri kullanarak sürümü doğrudan kontrol edebilirsiniz.

python manage.py runserver --version

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

python manage.py --versionNote the double kullanmanız gerekecek-
Shawnzam

@Shawnzam yes tabii ki bir yazım hatası .. Çok teşekkürler ..Yanıt düzenlendi
Vishnu Kiran

6

Django, PYTHONPATH ortam değişkeni tarafından belirtilen Python sürümünü kullanacaktır. Kullanabilirsinizecho $PYTHONPATHHangi sürümün kullanılacağını belirlemek için bir kabukta .

Django tarafından kullanılan modül sürümleri, PYTHONPATH tarafından belirtilen Python sürümü altında kurulan modül sürümleri olacaktır.


5

Çalıştırmak pip list LINUX TERMİNALDE ve listeden Django ve sürümünü bulmak

pip freezeWindows'ta cmd ile çalıştır


4

Python olmadan da yapabilirsiniz. Bunu Django dizininize yazın:

cat __init__.py | grep VERSION

Ve şöyle bir şey elde edeceksiniz:

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

1
Bu, sadece bir değer elde etmek için sanal env'yi etkinleştirmek istemediğinizde veya AWS Elastik Beanstalk gibi bir şey kullandığınızda ve sanal env'yi etkinleştiremediğinizde harika.
rjferguson

1
@rjferguson bir pip freeze/ yapmak için env'nizi etkinleştirmeniz gerekmez python -c "import <module>; <module>.VERSION". Sadece dönüp bakabilirler: /path/to/env/bin/python -c "<command>"ya / kullanım pip, aynı şeyi yüklemek istiyorsanız: /path/to/env/bin/pip freeze. Özel olarak im bir kök olarak oturum açtığımda ve tüm uygulama kodumun yaptığı gibi çalıştığında www-dataher zaman kullanıyorum: sudo su www-data -c "/path/to/env/bin/pip install <module>"ve hatta yanıp sönmüyor. (bunun neredeyse 2 yıl sonra olduğunu biliyorum ve muhtemelen şimdi biliyorsunuz - bu bir sonraki adam için daha fazla)
Javier Buzzi

> Python olmadan >> python -c
Alex Babak


4

Django sürümü veya başka bir paket sürümü

terminali veya komut istemini aç

tip

pip show django

veya

pip3 show django

herhangi bir paket sürümünü bulabilirsiniz ...
örnek

pip show tensorflow

pip show numpy 

vb....


Bu cevabın basitliğini en çok seviyorum. pip freezebir sürü pakette pipetlediyseniz, bir ton ekstra saçmalık gösterir.
DukeSilver


3

Ben en pitonik yolu olduğunu düşündüm:

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

Bu doğrudan setup.py ile bağlantı kurar: https://github.com/django/django/blob/master/setup.py#L37

HERHANGİ BİR paketin sürüm numarasını almanın kesinlikle en iyi yolu!

Ayrıca var 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

Gelince pythonsürümü, ben @jamesdradbury katılıyorum

>>> 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)]'

Hepsini bir araya getirmek:

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

2

Django sürüm karşılaştırması yapmak isterseniz, kullanabilirsiniz django-nine(pip install django-nine). Örneğin, ortamınızda yüklü olan Django sürümü 1.7.4 ise, aşağıdakiler doğru olacaktır.

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

Django 1.0'dan sonra bunu yapabilirsiniz

$ django-admin --version
1.11.10

1

Kabuk isteminde aşağıdaki komutu çalıştırarak django sürümünü alabilirsiniz

python -m django - sürüm

Django yüklüyse, sürümü görmeniz gerekir, aksi takdirde “django adlı modül yok” şeklinde bir hata alırsınız.


1

django'yu içe aktarabilir ve daha sonra sisteminizde yüklü olan django sürümünü öğrenmek için aşağıdaki gibi print deyimini yazabilirsiniz:

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

1

Django sürümü tarafından desteklenen Python sürümü

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

Django'nun Python tarafından görülebildiğini doğrulamak için kabuğunuzdan python yazın. Ardından Python komut isteminde Django'yu içe aktarmayı deneyin:

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

0

Django da dahil olmak üzere kurulu modüllerin tüm sürümlerini görmek için yazmanız python -m django --version veya yazmanız yeterlidir pip freeze.


bunun hiçbir şekilde reddedilmesinin bir nedeni yok, en özlü cevaplardan biridir.
tfantina

bu neden reddedildi ??
Azima
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.