我正在执行 sphinx-build 将一些 rst 文件转换为 html。但是我收到一个错误,因为它试图从旧的 Python 安装中导入模块的脚本。
我的环境:
- Mac OS X 10.6.8
- Python 2.7 从Python 官网安装
- 系统中包含 Python 2.6
执行的命令是:
sphinx-build -b html -d _build/doctrees . _build/html
错误文本如下
Traceback (most recent call last):
File "/usr/local/bin/sphinx-build", line 5, in <module>
from pkg_resources import load_entry_point
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2556, in <module>
"""
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 620, in require
``resolve()`` method. The `fallback` flag indicates whether we should
File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 518, in resolve
yield self.by_key[key]
pkg_resources.DistributionNotFound: Jinja2>=2.3
make: *** [html] Error 1
我很确定我已经安装了 Jinja 2.6。问题是它是为 Python 2.7 安装的,并且 sphinx-build.py 脚本不知何故使用了 Python 2.6 模块目录(您可以在错误文本中看到 Python 2.6 目录的路径)。
我的疑问是:为什么脚本在该目录中搜索?一些事实
- 我没有定义 PYTHONPATH 变量,如果我只是加载 python 解释器并打印 sys.path,我会得到所有属于 Python 2.7 的目录。没有提到 Python 2.6 目录。
- 我的工作目录中没有包含 Python 2.6 目录的 .pth 文件
那么,我错过了什么?为什么 Python 2.7 在 Python 2.6 的目录中查找?
更新:看起来 sphinx-build 是使用 Python2.6 构建的。我删除了它,但现在我无法恢复它。我已经安装了 Sphinx 和 docutils,但没有安装 sphinx-build :-(。有什么线索吗?
提前谢谢了