setup.py: добавить зависимости, необходимые для установки

Для распространения библиотек Python на PyPi я обычно указываю зависимости пакета в setup.py а-ля

setup(
    # ...
    install_requires=["numpy", "scipy"],
    # ...
)

Однако в некоторых случаях мне уже нужно что-то импортировать в setup.py, например при использовании pybind11. рекомендуемый способ найти включаемый каталог pybind11 через

def __str__(self):
    import pybind11  # !
    return pybind11.get_include(self.user)

Следовательно, пользователю необходимо pybind11 установить прежде чем pip попытается установить саму библиотеку. К сожалению, простое добавление модуля в install_requires не помогает:

  ModuleNotFoundError: No module named 'pybind11'

при попытке установить. Есть ли способ принудительно установить требования перед оценкой setup.py?


person Nico Schlömer    schedule 13.07.2018    source источник
comment
Я думаю, что зависимости установлены довольно рано. Итак, вы пытались просто добавить pybind11 в необходимый список? Если он оценивается перед поиском пути включения, он может работать так   -  person Tom de Geus    schedule 13.07.2018
comment
Если вы имеете в виду install_requires под обязательным списком, то да, я пробовал. Не работает. (Я уточню это в вопросе.)   -  person Nico Schlömer    schedule 13.07.2018
comment
Взгляните на этот SO Опубликовать   -  person gyx-hh    schedule 13.07.2018