Python脚本正在从旧的Python安装中加载模块

豪尔赫·阿雷瓦洛(Jorge Arevalo)

我正在执行sphinx-build将一些rst文件转换为html。但是我收到一个错误消息,因为该脚本正在尝试从旧的Python安装中导入模块。

我的环境:

执行的命令是:

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 modules目录(您可以在错误文本中看到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 :-(。有什么线索吗?

提前谢谢了

豪尔赫·阿雷瓦洛(Jorge Arevalo)

好的,这是一个愚蠢的错误。sphinx-build二进制文件是使用Python 2.6构建的。我删除了它,并用Python 2.7重建了狮身人面像。

之后,将二进制文件放在/Library/Frameworks/Python.framework/Versions/2.7/bin/中。我刚刚在/ usr / local / bin中创建了一个指向/Library/Frameworks/Python.framework/Versions/2.7/bin/sphinx-build的符号链接(由于某种原因未创建)。现在可以了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章