1

有没有办法从 python 代码中调用已安装的 python egg?我需要从 python 代码中调用 sphinx 文档生成器,目前我正在这样做:

os.system( "sphinx-build.exe -b html c:\\src c:\\dst" )

这可行,但需要一些额外的配置:需要将 python 安装文件夹中的“脚本”文件夹添加到系统 PATH(我在 Windows 上)。调用已安装的 python 鸡蛋有更好的本地方式吗?

4

2 回答 2

3

所以基本上,您想将 Sphinx 用作库吗?

这是做什么sphinx-build的:

from pkg_resources import load_entry_point

load_entry_point('Sphinx==0.5.1', 'console_scripts', 'sphinx-build')()

查看entry-points.txtEGG-INFO 目录,请注意 sphinx-build 入口点是sphinx.main函数(位于 中__init__.py)。

看看它并复制它的功能,您可以将 sphinx 用作库。我没有详细查看代码,但似乎 - 命令的大部分sphinx-build是由对象build上的方法完成的Sphinx

在您的代码中,您必须执行以下操作:

from sphinx.application import Sphinx
s = Sphinx(...)
s.build(...)

您需要查看 Sphinx 源代码以找出参数Sphinx.__init__()Sphinx.build()

于 2009-04-22T09:47:06.607 回答
1

将 egg 添加到 PYTHONPATH 或 sys.path 将允许您访问其中的模块和包。

于 2009-04-22T06:16:02.557 回答