AnswerBun.com

Python3. Setuptools. Добавление локального пакета в сборку

Stack Overflow на русском Asked by photon on January 6, 2022

Есть локально собранный пакет (например main-0.1.tar.gz).
Есть другой пакет (например base-0.1), который требует в зависимости main-0.1

Нужно, что бы при последующей установки пакета base-0.1, пакет main-0.1 так-же был установлен.

Т.е. указать в install_requires можно только пакеты с PyPI, а вот добавить пакеты в сборку – не ясно как.

Можно добавить в архив base-0.1 пакет main-0.1.tag.gz с помощью MANIFEST.in (include main-0.1.tag.gz). Но дальше dependency_links, например, не работает корректно.

Как добавить локальный пакет в сборку другого пакета и последующую его установку вместе с другим пакетом, как если бы он подтягивался с PyPI ?

One Answer

Нашел примерное решение. Не знаю на сколько это по феншую, но работает.

В MANIFEST.in добавляем include main-0.1.tar.gz

В setup.py в конце файла(после вызова setup()) дописываем:

if 'sdist' not in sys.argv[1]:
    os.system('pip install main-0.1.tar.gz')

Условие может быть другим, если, например, для сборки не используется sdist (python setup.py sdist). Главное как-то определить, что это запуск setup на сборку, а не на установку (pip install base-0.1.tar.gz в будущем).

В таком варианте мы копируем локальный зависимый пакет в архив собираемого пакета, и распространяется он, соответственно, вместе с ним. И устанавливается так-же.

Answered by photon on January 6, 2022

Add your own answers!

Related Questions

Проверка на наличие дробной части

3  Asked on November 22, 2021 by dmitryshishkin

 

Как из .java сделать .class?

3  Asked on November 22, 2021 by over_ghost

   

Обновить Adapter

1  Asked on November 22, 2021 by android-junior

   

Аналог lru_cache в C++

1  Asked on November 20, 2021

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir