python - 如何确定给定代码的 Django 版本?
问题描述
我在 Django 中有一个站点。如何知道(通过查看代码)它需要哪个版本的 Django 以及需要哪个 Python?
解决方案
猜测 Django 版本并不容易。通常,如果添加了适当的需求文件(如requirements.txt
),此文件会指定版本,例如:
# requirements.txt
Django==3.1
如果不存在,那么您将需要查看使用的功能。您可以查看发行说明以查看已删除的功能。如果您的程序使用函数X,并且该函数已被删除(未弃用),那么我们知道该版本将比该版本旧。
例如,如果我们查看Django 3.1 的发行说明,我们会看到:
删除了
django.core.exceptions.FieldDoesNotExist
in的兼容性导入。django.db.models.fields
如果您的代码因此包含一行:
from django.db.models.fields import FieldDoesNotExist
那么这意味着您的项目不能使用django-3.1,否则会产生错误。您还可以查找该版本中引入的功能并查看是否使用了这些功能。如果是这样,您就知道 Django 版本至少是 3.1。您可以对 Django 版本执行二进制搜索以轻松找到 Django 版本。但通常一个项目不需要特定版本,但可以使用一系列版本,因为该项目根本不依赖于某些新功能。
您可以对 Python 的发行说明执行相同的操作。例如,如果我们查看Python 3.8 中的新增功能,我们会看到:
有一种新的语法
:=
可以将值作为更大表达式的一部分分配给变量。由于其与海象的眼睛和獠牙相似,它被亲切地称为“海象操作员”。
因此,这意味着如果您的代码包含海象运算符,那么您知道这至少是python-3.8。
推荐阅读
- javascript - 如何在javascript中从循环结果中加入不同的数组值
- c - 不使用 atoi() 将字符添加为整数?
- amazon-web-services - 一个 lambda 调用另一个 lambda 是否通过互联网?
- css-animations - 仅使用 css 的多个文本块的文本淡入淡出
- firebase - 除了下载的数据之外,附加 Firebase 实时数据库侦听器是否有任何相关成本?
- java - 在 Java 中,我需要用户输入五个整数然后显示平均值。如何在不输入第 6 个条目的情况下获得总和中包含的第 5 个整数?
- javascript - 如何使传单弹出窗口跟随光标的位置?
- java - 在我们声明它为 false 之后的 while 语句中的布尔值
- python - 请用 Python 解释以下代码的输出
- python - 如何在 Python 中与 *args 一起传递附加参数