配置文件语法错误 - 未定义未来特性 unicode_literals (Python,Django,Sphinx)
我在尝试使用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 个回答
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 提供的链接 下载。
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 -> 命令行界面。
- http://www.python.org/getit/releases/2.5.6/ : > 根据当前的发布政策,Python 2.5 中的安全问题将不再修复。