Bagaimana cara memeriksa versi Django


547

Saya harus menggunakan Python dan Django untuk aplikasi kita. Jadi saya punya dua versi Python, 2.6 dan 2.7. Sekarang saya sudah menginstal Django. Saya bisa menjalankan aplikasi sampel untuk menguji kesuksesan Django. Tetapi bagaimana saya memastikan apakah Django menggunakan versi 2.6 atau 2.7 dan modul apa yang digunakan Django?


49
Cara terpendek -python3 -m django --version
Aniket Thakur

8
Dalam instalasi saya python3 tidak dikenali. Ini berfungsi: python -m django --version
Antti A

Jawaban:


672

Django 1.5 mendukung Python 2.6.5 dan yang lebih baru.

Jika Anda berada di Linux dan ingin memeriksa versi Python yang Anda gunakan, jalankan python -Vdari baris perintah.

Jika Anda ingin memeriksa versi Django, buka konsol dan ketik Python

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

Selami env sebelum Anda memeriksa versinya, jika tidak ada modul bernama django.
EngineSense

380

Pada dasarnya sama dengan jawaban bcoughlan , tetapi ini dia sebagai perintah yang dapat dieksekusi:

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

Menggabungkan Brady Emerson dan bcoughlan: python -c "import django; print(django.VERSION)"pengembalian (1, 8, 5, 'final', 0)
David Gleba

Anda seharusnya melakukannya python -c "import django; print(django.__version__)". Ini juga mengembalikan '2.2.4'(itu hanya panggilan keget_version() ) dan merupakan standar yang diikuti oleh kebanyakan perpustakaan lain karena itu didefinisikan dalam PEP 8 . Ini bekerja sejak Django 1.8
Boris

213

Jika Anda telah menginstal aplikasi:

$ django-admin.py version
2.0

Pada Mei 2018 (tanggal saya menguji lagi jawaban ini), ini menunjukkan versi sebagai 1.11.5 meskipun saya sudah menginstal 2.0.1. Tetapi >> django.VERSIONdalam shell python menampilkan versi yang tepat
Alex Jolig

1
ini bekerja untuk saya: ubuntu 18.04, virtualenv dengan P 3.6 dan Django 2.2
Carmine Tambascia

1
Kerja bagus
Phok Chanrithisak

97

Pergi ke direktori home proyek Django Anda dan lakukan:

./manage.py --version

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

Saya menggunakan IDLE (Python GUI).


41

Jika Anda memiliki pip , Anda juga dapat melakukan

pip membeku
dan itu akan menampilkan semua versi komponen Anda termasuk Django.

Anda dapat menyalurkannya melalui grep untuk mendapatkan versi Django saja. Itu adalah,

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

36

Untuk Python :

import sys
sys.version

Untuk Django (sebagaimana disebutkan oleh orang lain di sini):

import django
django.get_version()

Masalah potensial dengan hanya memeriksa versi, adalah bahwa versi dapat ditingkatkan sehingga kode dapat keluar dari tanggal. Anda ingin memastikan bahwa '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Perbandingan string normal akan gagal dalam perbandingan terakhir:

>>> '1.7.5' < '1.7.10'
False

Solusinya adalah menggunakan StrictVersion dari distutils .

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

2
Bagaimana dengan menggunakan django.VERSION, yang sudah tersedia sebagai tuple? Saya cukup yakin melakukan django.VERSION >= (1, 8)akan selalu berfungsi sebagaimana dimaksud.
Flimm

31

Seperti yang Anda katakan Anda memiliki dua versi python, saya berasumsi mereka berada di lingkungan virtual yang berbeda (misalnya venv) atau mungkin lingkungan conda .

Ketika Anda menginstal Django, kemungkinan hanya dalam satu lingkungan. Mungkin saja Anda memiliki dua versi Django yang berbeda, satu untuk setiap versi python.

Di dari terminal Unix / Mac, Anda dapat memeriksa versi python Anda sebagai berikut:

$ python --version

Jika Anda ingin tahu sumbernya:

$ which python

Dan untuk memeriksa versi Django:

$ python -m django --version

18

Ada berbagai cara untuk mendapatkan versi Django. Anda dapat menggunakan salah satu dari yang berikut yang diberikan di bawah ini sesuai dengan kebutuhan Anda.

Catatan: Jika Anda bekerja di lingkungan virtual maka silakan memuat lingkungan python Anda


Perintah Terminal

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

Perintah Shell Django

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

(Jangan ragu untuk memodifikasi jawaban ini, jika Anda memiliki semacam koreksi atau Anda ingin menambahkan lebih banyak informasi terkait.)


10

Untuk memeriksa menggunakan shell Python, lakukan hal berikut.

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

Jika Anda ingin melakukannya di shell Unix / Linux dengan satu baris, maka lakukan

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

Setelah Anda mengembangkan aplikasi, maka Anda dapat memeriksa versi secara langsung menggunakan yang berikut ini.

python manage.py runserver --version

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

Anda harus menggunakan python manage.py --versionNote the double-
Shawnzam

@Shawnzam ya tentu saja salah ketik .. Terima kasih banyak..Jawabannya diedit
Wisnu Kiran

6

Django akan menggunakan versi Python yang ditentukan oleh variabel lingkungan PYTHONPATH. Anda dapat menggunakan echo $PYTHONPATHshell untuk menentukan versi mana yang akan digunakan.

Versi modul yang digunakan oleh Django akan menjadi versi modul yang dipasang di bawah versi Python yang ditentukan oleh PYTHONPATH.


5

jalankan pip listpada LINUX TERMINAL dan temukan Django dan versinya pada daftar

berjalan pip freezedi cmd di Windows


4

Anda dapat melakukannya tanpa Python juga. Cukup ketik ini di direktori Django Anda:

cat __init__.py | grep VERSION

Dan Anda akan mendapatkan sesuatu seperti:

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

1
Ini bagus ketika Anda tidak ingin mengaktifkan env virtual hanya untuk mendapatkan nilai, atau Anda menggunakan sesuatu seperti AWS Elastic Beanstalk dan tidak dapat mengaktifkan env virtual.
rjferguson

1
@ rjferguson Anda tidak perlu mengaktifkan env Anda untuk melakukan pip freeze/ python -c "import <module>; <module>.VERSION". Anda hanya dapat referensi itu: /path/to/env/bin/python -c "<command>"atau jika Anda ingin menginstal penggunaan pip /, hal yang sama: /path/to/env/bin/pip freeze. Saya menggunakan ini sepanjang waktu, khususnya ketika saya login sebagai root dan semua kode aplikasi saya berjalan seperti yang www-datasaya lakukan: sudo su www-data -c "/path/to/env/bin/pip install <module>"dan bahkan tidak berkedip. (saya tahu ini hampir 2 tahun kemudian, dan Anda mungkin mengetahuinya sekarang - ini lebih untuk orang berikutnya)
Javier Buzzi

> tanpa Python >> python -c
Alex Babak


4

Versi Django atau versi paket lainnya

buka terminal atau command prompt

Tipe

pip show django

atau

pip3 show django

Anda dapat menemukan versi paket apa pun ...
misalnya

pip show tensorflow

pip show numpy 

dll ....


Saya suka kesederhanaan jawaban ini yang terbaik. pip freezemenunjukkan banyak omong kosong tambahan jika Anda telah mengirim banyak paket
DukeSilver


3

Saya pikir cara yang paling pythonic adalah:

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

Ini terkait langsung dengan setup.py: https://github.com/django/django/blob/master/setup.py#L37

Ini jelas cara terbaik untuk mendapatkan nomor versi paket APAPUN!

Juga ada 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

Adapun pythonversi, saya setuju dengan @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)]'

Mengikat semuanya:

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

2

Jika Anda ingin membuat perbandingan versi Django, Anda bisa menggunakan django-nine(pip install django-nine). Misalnya, jika versi Django yang diinstal di lingkungan Anda adalah 1.7.4, maka yang berikut ini akan benar.

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

Setelah Django 1.0 Anda bisa melakukan ini

$ django-admin --version
1.11.10

1

Anda bisa mendapatkan versi Django dengan menjalankan perintah berikut di prompt shell

python -m django --version

Jika Django diinstal, Anda harus melihat versi jika tidak Anda akan mendapatkan kesalahan mengatakan "Tidak ada modul bernama django".


1

Anda dapat mengimpor Django dan kemudian ketik pernyataan cetak seperti yang diberikan di bawah ini untuk mengetahui versi Django yang diinstal pada sistem Anda:

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

1

Versi python didukung oleh versi 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

Untuk memverifikasi bahwa Django dapat dilihat oleh Python, ketik python dari shell Anda. Kemudian pada prompt Python, coba impor Django:

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

0

Cukup ketik python -m django --version atau ketik pip freezeuntuk melihat semua versi modul yang diinstal termasuk Django.


sama sekali tidak ada alasan mengapa hal ini dibatalkan, itu adalah salah satu jawaban yang paling ringkas.
tfantina

mengapa ini diturunkan ??
Azima
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.