如何强制Sphinx使用Python 3.x解释器
我正在为一个用Python 3.x写的项目创建文档。我想用的工具是Sphinx,根据官方网站的信息,它的最新版本1.1.2是可以和Python 3.1+兼容的。我的操作系统是Archlinux,这是一种使用Python 3.2+作为默认Python版本的Linux发行版。
安装和配置非常简单,只需要运行(easy_install -U Sphinx
然后 sphinx-quickinstall
),而且我从来没有被要求选择2.x或3.x的Python解释器。但是,当我让Sphinx为我的项目创建文档时,它分析我的代码时却像是我写的是Python 2.x的代码。
Sphinx是否已经准备好支持Python 3.x?我是不是做错了什么?
9 个回答
在Ubuntu系统上,python3-sphinx
是一个单独的安装包。如果你需要用到它,就得安装这个包:
sudo apt-get install python3-sphinx
你可能可以在一台机器上同时运行两个版本,但我选择把旧的那个删掉:
sudo apt-get remove python-sphinx
在这样做之后,我的旧的makefile和我的Python 3代码配合得很好。
安装:使用 pip 来安装 sphinx,适用于 python3(可以用 pip3)。
pip3 install -U sphinx
构建:需要修改 Makefile
(在linux/Mac上)。
SPHINXBUILD = python -msphinx
在 Makefile
的上面那一行,把 python 改成 python3(或者 python3.x),就像这样:
SPHINXBUILD = python3 -msphinx
如果默认的 python 指向的是 2.x 版本的 python。
我昨晚也遇到了完全一样的问题,当时看到你的提问。我也是在使用Arch系统。
我觉得这个问题可能有很多原因,但对我来说,解决办法是我安装了Python 2版本的python-distribute
包,所以我用的是easy_install-2.7
而不是easy_install-3.2
。
我认为在我的情况下,错误版本的python-distribute
是因为我之前尝试通过pacman安装Sphinx(这会安装1.0.8版本),所以我先卸载了Sphinx和所有不需要的依赖包,命令是pacman -Rsu python-sphinx
,然后再安装python-distribute
,这样我就得到了正确版本的easy_install
。接着用easy_install
重新安装Sphinx,结果安装顺利。
如果你有其他东西依赖于python-distribute
,那么这个过程可能会有点不同。但可以先尝试卸载python-distribute
,然后再看看。
算了,最后那部分可以忽略。现在早上太早了,我没想清楚!python2-distribute
和python-distribute
是两个不同的包,我认为它们可以共存。所以,如果这就是你的问题,你只需要检查一下你是否有python-distribute
(不是“2”),如果没有就安装它,然后确保使用easy_install-3.2
来安装Sphinx。
希望这能帮到你。