1

最近我正在开发我的 Django web 应用程序,当我发现由于某种原因 Django 仅在我使用 python 2.x 时才有效。解释器,但我一直认为它是为 Python 3 配置的,因此是这样编码的。

所以我对它进行了测试,print(sys.version())当 Python 2.7 出现时我感到很惊讶。经过一番挖掘,我发现 Django 使用了模块。我的第一个问题是为什么 Django 使用它?除了让程序员更容易之外,还有什么理由吗?我的第二个问题是,既然我一直把它当作 Python 3 对待,我应该回去更改我的代码,使它成为纯 Python 2 吗?还是没关系?

Ps 我有点理解六是如何工作的,但如果能多了解一点就太好了。

谢谢。

4

2 回答 2

2

Django 1.5是第一个支持 Python 3 的 Django 版本。由于六个兼容层,相同的代码在 Python 2 (≥ 2.6.5) 和 Python 3 (≥ 3.2) 上运行。

如果您以Python ≥ 2.6. Django 1.5引入了兼容性工具,例如django.utils.six,这是六个模块的定制版本。为方便起见,在Django 1.4.2. 如果您的应用程序利用这些工具,它将需要Django ≥ 1.4.2.

有关更多信息,请阅读移植到 Python 3

于 2015-09-15T05:06:17.070 回答
0

您的系统使用哪个 Python 版本与六个模块无关。这是 Django 在内部使用的,以便能够同时使用 2.7 和 3.x。

如果您想在本地使用 Python 3,您需要配置您的系统来执行此操作。例如,这可能只是意味着使用 Python 3 创建您的 virtualenv。

于 2015-09-15T06:44:32.140 回答