Как заставить BuildDoc работать только когда python-sphinx установлен из файла setup.py?
У меня есть setup.py
файл для моего проекта FlashText:
from setuptools import setup, Command
from sphinx.setup_command import BuildDoc
setup(
.
.
cmdclass={'test': PyTest, 'build_sphinx': BuildDoc},
)
pip install flashtext
терпит неудачу, если python-sphinx не установлен.
ImportError: нет модуля с именем sphinx.setup_command
Сбой команды "python setup.py egg_info" с кодом ошибки 1 в /tmp/pip-build-LI0I_O/flashtext/
Это исправит эту проблему:
sudo apt-get install python-sphinx
Что мне нужно, если у кого-то нет python-sphinx
затем они также должны иметь возможность установить библиотеку. Как мне справиться с этим?
например py.test
обрабатывается так:
import subprocess
class PyTest(Command):
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
errno = subprocess.call(['py.test'])
raise SystemExit(errno)
PS: Полный код доступен на github https://github.com/vi3k6i5/flashtext
1 ответ
Решение
cmdclass={'test': PyTest}
try:
from sphinx.setup_command import BuildDoc
cmdclass['build_sphinx'] = BuildDoc
except ImportError:
print('WARNING: sphinx not available, not building docs')
setup(
.
.
cmdclass=cmdclass
)