Cách kiểm tra phiên bản Django


547

Tôi phải sử dụng PythonDjango cho ứng dụng của chúng tôi. Vì vậy, tôi có hai phiên bản Python, 2.6 và 2.7. Bây giờ tôi đã cài đặt Django. Tôi có thể chạy ứng dụng mẫu để thử nghiệm Django thành công. Nhưng làm thế nào để tôi chắc chắn liệu Django sử dụng phiên bản 2.6 hay 2.7 và phiên bản mô-đun nào Django sử dụng?


49
Con đường ngắn nhất -python3 -m django --version
Aniket Thakur

8
Trong cài đặt của tôi python3 không được công nhận. Tác phẩm này: python -m django --version
Antti A

Câu trả lời:


672

Django 1.5 hỗ trợ Python 2.6.5 trở lên.

Nếu bạn đang dùng Linux và muốn kiểm tra phiên bản Python bạn đang sử dụng, hãy chạy python -Vtừ dòng lệnh.

Nếu bạn muốn kiểm tra phiên bản Django, hãy mở bảng điều khiển Python và gõ

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

Chỉ cần đi sâu vào env trước khi bạn kiểm tra phiên bản, nếu không thì không có mô-đun có tên django.
EngineSense

380

Về cơ bản giống như câu trả lời của bcoughlan , nhưng ở đây nó là một lệnh thực thi:

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

Kết hợp Brady Emerson và bcoughlan: python -c "import django; print(django.VERSION)"trở về (1, 8, 5, 'final', 0)
David Gleba 24/03/18

Bạn nên làm python -c "import django; print(django.__version__)"thay thế. Nó cũng trả về '2.2.4'(nó chỉ là một cuộc gọi đếnget_version() ) và là tiêu chuẩn theo sau bởi hầu hết các thư viện khác bởi vì nó được định nghĩa trong PEP 8 . Nó hoạt động kể từ Django 1.8
Boris

213

Nếu bạn đã cài đặt ứng dụng:

$ django-admin.py version
2.0

Vào tháng 5 năm 2018 (ngày tôi đã thử lại câu trả lời này), nó hiển thị phiên bản là 1.11.5 mặc dù tôi đã cài đặt 2.0.1. Nhưng >> django.VERSIONtrong vỏ trăn hiển thị phiên bản phù hợp
Alex Jolig

1
cái này hiệu quả với tôi: Ubuntu 18.04, virtualenv với P 3.6 và Django 2.2
Carmine Tambascia

1
Làm tốt lắm, tuyệt vời
Phok Chanrithisak

97

Chuyển đến thư mục nhà dự án Django của bạn và làm:

./manage.py --version

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

Tôi đang sử dụng IDLE (GUI GUI).


41

Nếu bạn có pip , bạn cũng có thể làm

pip đóng băng
và nó sẽ hiển thị tất cả các phiên bản thành phần của bạn bao gồm Django.

Bạn có thể chuyển nó qua grep để có phiên bản Django. Đó là,

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

36

Đối với Python :

import sys
sys.version

Đối với Django (như được đề cập bởi những người khác ở đây):

import django
django.get_version()

Vấn đề tiềm ẩn với việc kiểm tra phiên bản đơn giản là các phiên bản được nâng cấp và do đó mã có thể bị lỗi thời. Bạn muốn đảm bảo rằng '1.7' <'1.7.1' <'1.7.5' <'1.7.10'. Một so sánh chuỗi bình thường sẽ thất bại trong so sánh cuối cùng:

>>> '1.7.5' < '1.7.10'
False

Giải pháp là sử dụng StrictVersion từ distutils .

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

2
Điều gì về việc sử dụng django.VERSION, mà đã đến như một tuple? Tôi khá chắc chắn làm django.VERSION >= (1, 8)sẽ luôn làm việc như dự định.
Flimm

31

Như bạn nói bạn có hai phiên bản python, tôi giả sử chúng ở trong các môi trường ảo khác nhau (ví dụ: venv) hoặc có lẽ là môi trường conda .

Khi bạn cài đặt django, nó chỉ có thể trong một môi trường. Có thể bạn có hai phiên bản django khác nhau, một phiên bản cho mỗi phiên bản của python.

Trong một thiết bị đầu cuối Unix / Mac, bạn có thể kiểm tra phiên bản python của mình như sau:

$ python --version

Nếu bạn muốn biết nguồn:

$ which python

Và để kiểm tra phiên bản của django:

$ python -m django --version

18

Có nhiều cách khác nhau để có được phiên bản Django. Bạn có thể sử dụng bất kỳ một trong những điều sau đây theo yêu cầu của bạn.

Lưu ý: Nếu bạn đang làm việc trong môi trường ảo thì hãy tải môi trường python của bạn


Lệnh đầu cuối

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

Lệnh Django Shell

  1. import django django.get_version() HOẶC LÀ django.VERSION
  2. from django.utils import version version.get_version() HOẶC LÀ version.get_complete_version()
  3. import pkg_resources pkg_resources.get_distribution('django').version

(Vui lòng sửa đổi câu trả lời này, nếu bạn có một số loại chỉnh sửa hoặc bạn muốn thêm thông tin liên quan.)


10

Để kiểm tra bằng trình bao Python, hãy làm như sau.

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

Nếu bạn muốn làm điều đó trong shell Unix / Linux với một dòng duy nhất, thì hãy làm

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

Khi bạn đã phát triển một ứng dụng, sau đó bạn có thể kiểm tra phiên bản trực tiếp bằng cách sử dụng như sau.

python manage.py runserver --version

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

Bạn sẽ cần sử dụng python manage.py --versionLưu ý gấp đôi-
Shawnzam

@Shawnzam tất nhiên là một lỗi đánh máy .. Cảm ơn rất nhiều..Có thể chỉnh sửa
Vishnu Kiran

6

Django sẽ sử dụng phiên bản Python được chỉ định bởi biến môi trường PYTHONPATH. Bạn có thể sử dụng echo $PYTHONPATHtrong trình bao để xác định phiên bản nào sẽ được sử dụng.

Các phiên bản mô-đun được Django sử dụng sẽ là các phiên bản mô-đun được cài đặt theo phiên bản Python được chỉ định bởi PYTHONPATH.


5

chạy pip listtrên LINUX TERMINAL và tìm Django và phiên bản của nó trong danh sách

chạy pip freezetrên cmd trên Windows


4

Bạn có thể làm điều đó mà không cần Python. Chỉ cần gõ này trong thư mục Django của bạn:

cat __init__.py | grep VERSION

Và bạn sẽ nhận được một cái gì đó như:

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

1
Điều này thật tuyệt vời khi bạn không muốn kích hoạt env ảo chỉ để nhận giá trị hoặc bạn đang sử dụng thứ gì đó như AWS Elastic Beanstalk và không thể kích hoạt env ảo.
rjferguson

1
@rjferguson bạn không cần kích hoạt env của bạn để làm a pip freeze/ python -c "import <module>; <module>.VERSION". Bạn chỉ có thể tham khảo nó: /path/to/env/bin/python -c "<command>"hoặc nếu bạn muốn cài đặt / sử dụng pip, điều tương tự : /path/to/env/bin/pip freeze. Tôi sử dụng điều này mọi lúc, đặc biệt khi tôi đăng nhập với quyền root và tất cả mã ứng dụng của tôi chạy như www-datatôi: sudo su www-data -c "/path/to/env/bin/pip install <module>"và thậm chí không nhấp nháy. (tôi biết điều này là gần 2 năm sau, và bạn có thể biết về nó bây giờ - điều này nhiều hơn cho anh chàng tiếp theo)
Javier Buzzi

> không có Python >> python -c
Alex Babak

4

Có một mô-đun phiên bản utils không có giấy tờ trong django

https://github.com/django/django/blob/master/django/utils/version.py

Với điều đó, bạn có thể lấy phiên bản bình thường dưới dạng chuỗi hoặc tuple phiên bản chi tiết:

>>> from django.utils import version
>>> version.get_version()
... 1.9
>>> version.get_complete_version()
... (1, 9, 0, 'final', 0)

4

Phiên bản Django hoặc bất kỳ phiên bản gói nào khác

mở terminal hoặc dấu nhắc lệnh

kiểu

pip show django

hoặc là

pip3 show django

bạn có thể tìm thấy bất kỳ phiên bản gói nào ...
ví dụ

pip show tensorflow

pip show numpy 

Vân vân....


Tôi thích sự đơn giản của câu trả lời này tốt nhất. pip freezehiển thị một tấn tào lao thêm nếu bạn đã gói trong một loạt các gói.
DukeSilver

4

Nhập vào CMD hoặc thiết bị đầu cuối của bạn:

python -m django --version

3

Tôi nghĩ cách pythonic nhất là:

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

Điều này liên quan trực tiếp đến setup.py: https://github.com/django/django/blob/master/setup.py#L37

Đây chắc chắn là cách tốt nhất để có được số phiên bản của gói BẤT K !!

Cũng 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

Về pythonphiên bản, tôi đồng ý với @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)]'

Buộc tất cả lại với nhau:

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

2

Nếu bạn muốn thực hiện so sánh phiên bản Django, bạn có thể sử dụng django-nine(pip cài đặt django-chín). Ví dụ: nếu phiên bản Django được cài đặt trong môi trường của bạn là 1.7.4, thì điều sau đây sẽ là đúng.

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



1

Bạn có thể nhận phiên bản django bằng cách chạy lệnh sau trong dấu nhắc shell

trăn -m django - đảo ngược

Nếu Django được cài đặt, bạn sẽ thấy phiên bản nếu không bạn sẽ gặp lỗi khi nói với No Không có mô-đun có tên django.


1

bạn có thể nhập django và sau đó nhập câu lệnh in như được đưa ra dưới đây để biết phiên bản django tức là được cài đặt trên hệ thống của bạn:

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

1

Phiên bản Python được hỗ trợ bởi phiên bản 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

Để xác minh rằng Django có thể được nhìn thấy bởi Python, hãy nhập python từ shell của bạn. Sau đó, tại dấu nhắc Python, hãy thử nhập Django:

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

0

Chỉ cần gõ python -m django --version hoặc gõ pip freezeđể xem tất cả các phiên bản của các mô-đun được cài đặt bao gồm Django.


không có lý do gì để điều này bị hạ thấp cả, nó là một trong những câu trả lời ngắn gọn nhất.
tfantina

Tại sao điều này bị hạ cấp ??
Azima
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.