如何强制Sphinx使用Python 3.x解释器

23 投票
9 回答
26648 浏览
提问于 2025-04-17 05:40

我正在为一个用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 个回答

10

在Ubuntu系统上,python3-sphinx是一个单独的安装包。如果你需要用到它,就得安装这个包:

sudo apt-get install python3-sphinx

你可能可以在一台机器上同时运行两个版本,但我选择把旧的那个删掉:

sudo apt-get remove python-sphinx

在这样做之后,我的旧的makefile和我的Python 3代码配合得很好。

23

安装:使用 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。

7

我昨晚也遇到了完全一样的问题,当时看到你的提问。我也是在使用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-distributepython-distribute是两个不同的包,我认为它们可以共存。所以,如果这就是你的问题,你只需要检查一下你是否有python-distribute(不是“2”),如果没有就安装它,然后确保使用easy_install-3.2来安装Sphinx。

希望这能帮到你。

撰写回答