我必须为我们的应用程序使用 Python 和 Django。所以我有两个版本的 Python,2.6 和 2.7。现在我已经安装了 Django。我可以运行示例应用程序来成功测试 Django。但是如何确定 Django 使用的是 2.6 还是 2.7 版本以及 Django 使用的模块版本是什么?
python3 -m django --version
django-admin --version
Django 1.5 支持 Python 2.6.5 及更高版本。
如果您在 Linux 下并且想要检查您正在使用的 Python 版本,请从命令行运行 python -V
。
如果要检查 Django 版本,请打开 Python 控制台并键入
>>> import django
>>> django.VERSION
(2, 0, 0, 'final', 0)
与 bcoughlan's answer 基本相同,但这里它是一个可执行命令:
$ python -c "import django; print(django.get_version())"
2.0
python -c "import django; print(django.VERSION)"
返回 (1, 8, 5, 'final', 0)
python -c "import django; print(django.__version__)"
。它还返回 '2.2.4'
(它是 just a call to get_version()
)并且是大多数其他库遵循的标准,因为它是 defined in PEP 8。它从 Django 1.8 开始工作
如果您已安装应用程序:
$ django-admin --version
3.2.6
>> django.VERSION
显示正确的版本
django-admin.py --version
。根据您完成 python 安装的方式,您甚至可能需要 python django-admin.py --version
。
转到您的 Django 项目主目录并执行以下操作:
./manage.py --version
如果您有 pip,您还可以执行
pip freeze
您可以通过 grep 管道获取 Django 版本。那是,
josh@villaroyale:~/code/djangosite$ pip freeze | grep Django
Django==1.4.3
正如您所说,您有两个版本的 Python,我假设它们位于不同的 virtual environments(例如 venv)或 Conda environments 中。
当您安装 Django 时,它可能只在一个环境中。您可能有两个不同版本的 Django,每个版本对应一个 python。
在 Unix/Mac 终端中,您可以检查您的 Python 版本,如下所示:
$ python --version
如果你想知道来源:
$ which python
并检查 Django 的版本:
$ python -m django --version
对于 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
解决方案是使用 StrictVersion from distutils。
>>> from distutils.version import StrictVersion
>>> StrictVersion('1.7.5') < StrictVersion('1.7.10')
True
django.VERSION
怎么样?我很确定执行 django.VERSION >= (1, 8)
将始终按预期工作。
有多种方法可以获取 Django 版本。您可以根据自己的要求使用以下任何一种。
注意:如果您在虚拟环境中工作,请加载您的 python 环境
终端命令
python -m django --version django-admin --version 或 django-admin.py version ./manage.py --version 或 python manage.py --version pip freeze | grep Django python -c "import django; print(django.get_version())" python manage.py runserver --version
Django 外壳命令
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
(如果您有某种更正或想要添加更多相关信息,请随时修改此答案。)
django-admin --version
python manage.py --version
pip freeze | grep django
python manage.py --version
注意双 -
只需输入 python -m django --version
或输入 pip freeze
即可查看已安装模块的所有版本,包括 Django。
要使用 Python shell 进行检查,请执行以下操作。
>>>from django import get_version
>>> get_version()
如果你想在 Unix/Linux shell 中用一行来做,那么做
python -c 'import django; print(django.get_version())'
开发应用程序后,您可以使用以下内容直接检查版本。
python manage.py runserver --version
输入您的 CMD 或终端:
python -m django --version
Django 版本或任何其他包版本
打开终端或命令提示符
类型
pip show django
或者
pip3 show django
您可以找到任何软件包版本...
例子:
pip show tensorflow
pip show numpy
ETC....
pip freeze
如果您在一堆包中点名,则会显示大量额外的废话。
在 Linux 终端 中运行 pip list
并在列表中找到 Django 及其版本:
在 Windows 上的 cmd 上运行 pip freeze
。
Django 将使用 PYTHONPATH 环境变量指定的 Python 版本。您可以在 shell 中使用 echo $PYTHONPATH
来确定将使用哪个版本。
Django 使用的模块版本将是安装在 PYTHONPATH 指定的 Python 版本下的模块版本。
Django 中有一个未记录的 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 的情况下做到这一点。只需在 Django 目录中输入:
cat __init__.py | grep VERSION
你会得到类似的东西:
VERSION = (1, 5, 5, 'final', 0)
pip freeze
/ python -c "import <module>; <module>.VERSION"
。你可以简单地引用它:/path/to/env/bin/python -c "<command>"
,或者如果你想安装/使用 pip,同样的东西:/path/to/env/bin/pip freeze
。我一直都在使用它,特别是当我以 root 身份登录并且我的所有应用程序代码都以 www-data
运行时:sudo su www-data -c "/path/to/env/bin/pip install <module>"
甚至不眨眼。 (我知道这是差不多 2 年后的事了,你现在可能知道了——这更适合下一个人)
在 django 1.0 之后你可以这样做
$ django-admin --version
1.11.10
我见过的获取任何软件包版本的最 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
来比较版本:
>>> 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
版本,我同意 with James Bradbury:
>>> 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
官方文档
第一的:
python -m django --version
第二:
import django
print(django.get_version())
如果要进行 Django 版本比较,可以使用 django-nine
(pip install django-nine)。例如,如果您的环境中安装的 Django 版本是 1.7.4,则以下情况为真。
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
您可以通过在 shell 提示符下运行以下命令来获取 django 版本
python -m django --version
如果安装了 Django,你应该会看到版本,否则你会得到一个错误提示“No module named django”。
在 Python shell 中键入以下命令
import django
django.get_version()
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,然后键入下面给出的打印语句以了解系统上安装的 django 版本:
>>> import django
>>> print(django.get_version())
2.1
打开您的 CMD 或终端并运行以下任何命令
django-admin --version
or
python3 -m django --version
or
pip freeze
从您的代码中,您可以使用以下两种方法中的任何一种来获取 Django 的版本。
import django
print(django.__version__)
# '3.1.5'
print(django.VERSION)
# (3, 1, 5, 'final', 0)
或从您的终端,您可以运行
django-admin --version
https://i.stack.imgur.com/N0OrF.png
django-admin--版本
看到这里我已经在我的系统中安装了最新的 Python 和 Django,结果如图所示。
还有两种方法可以获取(Django 和其他包的)版本。他们都需要一个 version 变量来获取包的版本。根据 PEP-396,应为每个 Python 模块设置 __version__ 变量。
方法 1 - 从文件系统获取版本
考虑到这一点,您就知道如何获取几乎每个 Django/Python 包的版本。查看包根目录的 __init__.py 内部。因此,如果您能够快速浏览文件系统,这可能是一种非常通用的方式来获取站点包(虚拟环境)中任何包的版本。
方法 2 - Django 调试工具栏
有一个非常有用的工具,称为 django debug toolbar。如果您使用它(非常推荐用于 Django 开发),您可以列出所有具有 package.__version__ 的应用程序的版本。
https://i.stack.imgur.com/zCefb.png
不定期副业成功案例分享
AttributeError: module 'django' has no attribute 'VERSION'