Как заставить setup.py сохранять *.egg и *.egg-info не в корне проекта (где собственно и лежит setup.py), а в какой-нибудь другой директории? Такая фигня возникает в 2-х случаях:
- Если запускать setup.py test, когда не все зависимости (ну их яйца) лежат в site-packages виртуального окружения. Тогда запускается build с inplace и все неустановленные зависимости пакетов начинают появляться в корневой папке проекта. Не очень приятно, хочется их отправлять либо в PROJECT_ROOT/eggs/, либо отправлять в site-packages. Такая же фигня возникает, если прописать зависимости в setup_requires. Возможно ли добиться настройками в setup.cfg ,или ещё как-нибудь, сохранения яиц в подкаталоге проекта, а не в его корне?
- Если запустить setup.py develop, то в корне проекта начинают появляться *.egg-info. Их тоже хочется куда-нибудь скинуть в одну папку (PROJECT_ROOT/eggs-info/ например). Можно прописать в setup.cfg такую вещь:
Тогда .egg-info сохраняется куда надо, и даже pip видит, что пакет установлен. Но sys.path тогда будет содержать папку PROJECT_ROOT/eggs-info/ с метаинфой пакета, но не будет содержать PROJECT_ROOT, и импортёр не найдёт собственно сами исходники пакета.
[egg_info] egg_base = eggs-info
Отсюда у меня вытекают такие вопросы:
- Есть ли способ установить через setup.py всякие допзависимости из extras_require? Или это только через easy_install/pip? Либо, может есть возможность настройки запуска setup.py такая, чтобы отправлять яйца в подпапку корня проекта, но опять же, чтобы они были доступны для импорта.
- Как перемещать при запуске команды develop папки с метаинфой в подпапку корня проекта, но так, чтобы сам корень попадал в easy-install.pth, и, собственно, нормально импортировался.