配置文件语法错误 - 未定义未来特性 unicode_literals (Python,Django,Sphinx)

1 投票
2 回答
3301 浏览
提问于 2025-04-17 18:47

我在尝试使用Django这个框架。原本打算去看它的文档,但发现文档不在那儿,我得自己生成。于是我去看了文件夹里的Readme,下载了Sphinx这个文档生成的Python模块。

我用easy_install安装了它,结果它被安装到了Python2.5上。没关系,只要能生成文档,用Python2.5也行。

我在/doc文件夹里运行make html,结果出现了这个:

Running Sphinx v1.1.3

Configuration error:
There is a syntax error in your configuration file: future feature unicode_literals is not defined (conf.py, line 14)

conf.py是Django-1.5/doc文件夹里的一个文件。第14行是:

from __future__ import unicode_literals

我查了一下为什么会这样,看到有些页面说对2.5的支持被取消了,但我没太明白具体是怎么回事。

所以我就把Sphinx安装到了Python 2.7上,希望这样能解决版本的问题。

然后我再次在Django的/doc文件夹里运行make html,结果又出现了和之前一样的构建错误。

我该怎么做才能让make命令使用安装在Python 2.7上的Sphinx版本来生成文档呢?

我只想生成这些文档。虽然我喜欢Python,但在Windows上安装这些包真是太麻烦了。

2 个回答

0

Python 2.5 不支持 from __future__ import unicode_literals 这个命令。在 Python 提示符下输入 help("__future__") 可以查看相关文档。

我该如何让 make 命令使用安装在 Python 2.7 上的 Sphinx 版本进行构建呢?

你可以尝试在 bash 中指定 PYTHON 选项,比如:

$ PYTHON=python2.7 make html

在 Windows 上可能是:

T:\> set PYTHON=C:\path\to\Python27\python.exe
T:\> make html

你可以使用 setx 命令来永久设置这个变量。


你不需要构建文档就可以尝试 Django。文档可以在 网上找到,或者你可以通过 @christophe31 提供的链接 下载。

Django 1.5 不再支持 Python 2.5

1

Sphinx 是一个生成文档的工具,其中一部分是从源代码中提取的,这样可以进行一些检查或部分执行。

因为 __future__ 不是一个模块(除非它是第一个指令,否则不能“导入”它)。

所以我觉得这可能并没有直接回答你的问题,但这是合乎逻辑的,也是件好事,因为它支持 Python 3,并且不鼓励使用那些不再维护的旧版本 Python[1]。

你很幸运,有一些好心人已经为你整理好了文档:

这是最新的主文档: http://media.readthedocs.org/pdf/django/latest/django.pdf

这是 1.5 版本的 PDF 文档: http://media.readthedocs.org/pdf/django/1.5.x/django.pdf

如果你想要 HTML 版本,你需要使用离线阅读器:http://django.readthedocs.org/en/1.5.x/

希望这能解决你的问题,尽管它没有直接回答你的问题。

我想你的生产环境不会是 Windows。大多数在 Windows 上开发 Django 的开发者会使用 Cygwin 或虚拟机来工作。Django 和 Python 提供了很棒的命令行工具。如果你在命令行的“地狱”里,这些工具就无法发挥它们的强大功能。

注意:CLI -> 命令行界面。

  1. http://www.python.org/getit/releases/2.5.6/ : > 根据当前的发布政策,Python 2.5 中的安全问题将不再修复。

撰写回答