我必须在我们的应用程序中使用python和Django。所以我有两个版本的Python,2.6和2.7。现在我安装了Django。我可以成功运行示例应用程序来测试Django。但是我如何确定Django使用的是2.6还是2.7版本,以及Django使用的模块版本?
Django 1.5支持Python 2.6.5及更高版本。
如果您Linux,并希望检查您正在使用的Python版本,请从命令行运行python -V。
python -V
如果您想检查Django版本,请打开Python控制台并键入
>>> import django >>> django.VERSION (2, 0, 0, 'final', 0)
Django将使用PYTHONPATH环境变量指定的Python版本。您可以在shell中使用echo $PYTHONPATH来确定将使用哪个版本。
echo $PYTHONPATH
Django使用的模块版本将是安装在PYTHONPATH指定的Python版本下的模块版本。
基本上与布考夫兰的回答相同,但在这里它是一个可执行命令:
$ python -c "import django; print(django.get_version())" 2.0
如果你有pip,你也可以做一个点冻结 它将显示您的所有组件版本,包括Django。
您可以通过grep管道获取Django版本。也就是说,
josh@villaroyale:~/code/djangosite$ pip freeze | grep Django Django==1.4.3
如果您安装了应用程序:
$ django-admin --version 3.2.6
要使用Python shell进行检查,请执行以下操作。
>>>from django import get_version >>> get_version()
如果您希望在Unix/Linuxshell中使用单行执行此操作,请执行
python -c 'import django; print(django.get_version())'
开发应用程序后,您可以使用以下命令直接检查版本。
python manage.py runserver --version
>>> import django >>> print(django.get_version()) 1.6.1
我使用的是IDLE(Python GUI)。
转到您的Django项目主目录并执行以下操作:
./manage.py --version
你也可以在没有Python的情况下做到这一点。只需在你的Django目录中输入:
cat __init__.py | grep VERSION
你会得到这样的东西:
VERSION = (1, 5, 5, 'final', 0)
对于python:
import sys sys.version
对于Django(正如其他人在这里提到的):
import django django.get_version()
简单检查版本的潜在问题是版本会升级,因此代码可能会过期。您要确保'1.7'<'1.7.1'<'1.7.5'<'1.7.10'。正常的字符串比较会在上次比较中失败:
>>> '1.7.5' < '1.7.10' False
解决方案是使用来自distutils的StrictVersion。
>>> from distutils.version import StrictVersion >>> StrictVersion('1.7.5') < StrictVersion('1.7.10') True
如果您想进行Django版本比较,您可以使用django-nine(pip install django-9)。例如,如果您的环境中安装的Django版本是1.7.4,那么以下内容将是正确的。
django-nine
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
我见过的最Pythonic的方式来获取任何包的版本:
>>> import pkg_resources; >>> pkg_resources.get_distribution('django').version '1.8.4'
这直接关系到setup.py:https://github.com/django/django/blob/master/setup.py#L37
还有distutils来比较版本:
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
至于获得python版本,我同意与詹姆斯·布拉德伯里:
python
>>> 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)]'
把它们都绑在一起:
>>> StrictVersion((sys.version.split(' ')[0])) > StrictVersion('2.6') True
Django中有一个未记录的utils版本模块:
utils
https://github.com/django/django/blob/master/django/utils/version.py
有了这个,你可以得到一个字符串或一个详细的版本元组的正常版本:
>>> from django.utils import version >>> version.get_version() ... 1.9 >>> version.get_complete_version() ... (1, 9, 0, 'final', 0)
正如你所说,你有两个版本的Python,我假设它们在不同的虚拟环境(例如venv)或Conda环境中。
当您安装Django时,它可能只在一个环境中。您可能有两个不同版本的Django,每个版本的python对应一个。
在Unix/Mac终端中,您可以检查您的Python版本,如下所示:
$ python --version
如果你想知道来源:
$ which python
并检查Django的版本:
$ python -m django --version
在Linux终端中运行pip list并在列表中找到Django及其版本:
pip list
在Windows上的cmd上运行pip freeze。
pip freeze
django-admin --version python manage.py --version pip freeze | grep django
您可以通过在shell提示符中运行以下命令来获取django版本
python-m django--version
如果安装了Django,你应该看到版本,否则你会得到一个错误,告诉“没有名为django的模块”。
在Python shell中键入以下命令
在django 1.0之后,你可以这样做
$ django-admin --version 1.11.10
有多种方法可以获得Django版本。您可以根据您的需要使用以下任何一种。
备注:如果您在虚拟环境中工作,请加载您的python环境
python -m django --version
django-admin --version
django-admin.py version
python manage.py --version
pip freeze | grep Django
python -c "import django; print(django.get_version())"
导入django django.get_version()
django.VERSION
从django.utils导入版本 version.get_version()
version.get_complete_version()
导入pkg_resources pkg_resources.get_distribution('django'). version
(如果您有任何更正或想添加更多相关信息,请随时修改此答案。
您可以导入django,然后输入下面给出的print语句,以了解系统上安装的django版本:
>>> import django >>> print(django.get_version()) 2.1
Django版本支持的Python版本
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
要验证Python可以看到Django,请从shell中键入python。然后在Python提示符下,尝试导入Django:
>>> import django >>> print(django.get_version()) 2.1 >>> django.VERSION (2, 1, 4, 'final', 0)
Django版本或任何其他包版本
打开终端或命令提示符
类型
pip show django
或
pip3 show django
您可以找到任何包版本…
示例:
pip show tensorflow pip show numpy
等等……
只需键入python -m django --version或键入pip freeze即可查看已安装模块的所有版本,包括Django。
输入您的CMD或终端:
转到Django项目的设置。在那里找到您的Django版本。
打开您的CMD或终端并运行以下任何命令
django-admin --version or python3 -m django --version or pip freeze
这是非常简单的打开CLI(命令行或任何IDE)无论你安装Python和Django只需键入,
django-admin--version
看这里,我在我的系统中安装了最新的Python和Django,结果如图所示。
还有两种方法可以获取版本(Django和其他包)。 它们都需要包的版本变量来获取版本。 根据PEP-396,应该为每个Python模块设置__version__variable。
方法1-从文件系统获取版本
考虑到这一点,您知道如何获取几乎每个Django/Python包的版本。查看包根的__init__. py。 因此,如果您在文件系统中快速导航,这可能是获取站点包(虚拟环境)中任何包的版本的一种非常通用的方式。
方法2-Django调试工具栏
有一个非常有用的工具,叫做django调试工具栏。 如果您使用它(非常推荐用于Django开发),您可以列出具有包的所有应用程序的版本。__version__。
从您的代码中,您可以使用以下两个中的任何一个来获取Django的版本。
import django print(django.__version__) # '3.1.5' print(django.VERSION) # (3, 1, 5, 'final', 0)
或者从你的终端你可以跑
官方文档
第一:
第二:
import django print(django.get_version())