Есть ли способ добавить зависимости Python в пакет conan - PullRequest
0 голосов
/ 02 февраля 2019

Я настраиваю проект с использованием нескольких библиотек и пакетов на C / C ++ и Python.

Я хотел бы настроить двоичный репозиторий для пакетов C / C ++ и сервер индекса пакетов Python для пакетов Python.

Я наткнулся на conan и artefactory для обработки зависимостей между библиотеками C / C ++, но не могу найти четкого решения для добавления стандартных зависимостей пакетов python.

Например, мой проект ' A '(C / C ++) зависит от' B '(C / C ++), который содержит код, сгенерированный с использованием инструмента' C '(Python).

Я хотел бы установить для ' B ' значение ' C ' в качестве требования к пунктам для конкретного распространения моего пакета инструментов ' C '.

Пока что я вижу следующие решения:

  1. Создайте пакет conan для моего инструмента ' C' 'и добавьте требование в' B '
  2. Обработайте вручную пакет установки' C 'в' B 'conanfile.py

Я хотел бычтобы не добавлять пакет conan для пакета python, так как python уже имеет систему управления пакетами, и мои пакеты будут доступны на индексном сервере python.

Я бы также не стал добавлять коддля обработки зависимостей пакетов Python.

У кого-нибудь есть идеи, если это возможно с помощью conan в простом вопросе?

Спасибо

Alex

1 Ответ

0 голосов
/ 07 февраля 2019

Поскольку рецепт Conan также является скриптом Python, вы можете запустить pip непосредственно из рецепта:

 def system_requirements(self):
    import pip
    if hasattr(pip, "main"):
        pip.main(["install", "colorama"])
    else:
        from pip._internal import main
        main(['install', "colorama"])

Системные требования - это лучшее место, поскольку они связаны с необходимым пакетом, который не является Conan.пакет.Если у вас есть условие для добавления на основе дистрибутива, вы также можете использовать distro_info.

Посмотрите здесь в документации, чтобы получить больше информации о.

Привет!

...