доступ к яйцам в питоне? - PullRequest
0 голосов
/ 22 апреля 2009

Есть ли способ вызвать установленное яйцо Python из кода Python? Мне нужно позвонить сфинксу генератор из кода Python, и в настоящее время я делаю это так:

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

Это работает, но требует дополнительной настройки: папка 'scripts' внутри установочной папки Python необходимо добавить в системный PATH (Я нахожусь на Windows). Что лучше, родной способ вызвать установленный питон яйцо

Ответы [ 2 ]

2 голосов
/ 22 апреля 2009

Итак, вы хотите использовать 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()

1 голос
/ 22 апреля 2009

Добавление яйца в PYTHONPATH или в sys.path позволит вам получить доступ к модулям и пакетам внутри.

...