Фон
У нас есть проект со следующей структурой каталогов высокого уровня *
./datascience/
├── core
│ └── setup.py
├── notebooks
│ └── Pipfile
└── web
└── Pipfile
* Для краткости исключены все несущественные файлы и каталоги.
Пакет core
- это библиотека.Это зависимость приложений notebooks
и web
.
Пакет core
, является библиотекой , имеет зависимости, указанные в setup.py
import setuptools
setuptools.setup(
install_requires=[
'some-dependency',
'another-dependency'
]
)
Приложения web
и notebooks
используют pipenv для управления зависимостями.Их зависимости указаны в Pipfile
.
Например, вот как web
зависимости указываются в web/Pipfile
:
[packages]
datascience-core = {path = "./../core"}
flask = "~= 1.0"
Обратите внимание, как зависимость core
локальная зависимость, следовательно, относительный путь.
Проблема
Выполнение pipenv install
из каталога web
или notebooks
не устанавливает зависимости core
библиотека, как я и ожидал!
Я также попытался использовать Pipfile
для core
, надеясь, что pipenv найдет его в своем графике и загрузит все вложенные зависимости.Но это не так.
Как автоматически установить зависимости приложения core
, когда pipenv устанавливает зависимости для приложения web
или notebooks
?