有没有办法从 python 代码中调用已安装的 python egg?我需要从 python 代码中调用 sphinx 文档生成器,目前我正在这样做:
os.system( "sphinx-build.exe -b html c:\\src c:\\dst" )
这可行,但需要一些额外的配置:需要将 python 安装文件夹中的“脚本”文件夹添加到系统 PATH(我在 Windows 上)。调用已安装的 python 鸡蛋有更好的本地方式吗?
所以基本上,您想将 Sphinx 用作库吗?
这是做什么sphinx-build
的:
from pkg_resources import load_entry_point
load_entry_point('Sphinx==0.5.1', 'console_scripts', 'sphinx-build')()
查看entry-points.txt
EGG-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()
将 egg 添加到 PYTHONPATH 或 sys.path 将允许您访问其中的模块和包。