Сделайте библиотеки Python, установленные с файлом requirements.txt, немедленно доступными

Вот очень простые требования.txt:

numpy
sharedmem

Проблема в том, что sharedmem на самом деле зависит от наличия numpy, доступного даже для запуска его установки. .py, это зависимость установки. Запуск pip install -r requirements.txt действительно пытается сначала установить numpy, как и ожидалось, но sharedmem все еще ломается при попытке импортировать numpy.distutils.core. Предположительно, потому что pip сначала устанавливает библиотеки во временный каталог сборки, а не в путь импорта.

Любые идеи о том, как с этим бороться?

P.S. Похоже, это обман: В Python `pip -r requirements.txt` не устанавливает пакеты *рекурсивно*?, но и там проблема не решена.


person isagalaev    schedule 08.08.2016    source источник
comment
Мне кажется, что это вина sharedmem setup.py. Мы не должны импортировать зависимости, поскольку их может еще не быть, что приводит к поломке, которую вы видите.   -  person wim    schedule 08.08.2016
comment
Да, sharedmem на самом деле не нуждается в этом импорте (насколько я вижу), но проблема более общая: есть пакеты, которые зависят от других для запуска setup.py, это законное требование.   -  person isagalaev    schedule 08.08.2016
comment
О, на самом деле он использует конкретную версию setup() numpy. Но я не знаю, нужно ли это на самом деле.   -  person isagalaev    schedule 08.08.2016
comment
То же самое происходит с cloudflare-1.1.5. Они используют запросы в настройке, и это не работает в одиночных требованиях install -r, хотя запросы есть в требованиях cloudflare и даже явно указаны в требованиях.txt до cloudflare. Обходной путь - установить зависимость с помощью отдельной команды установки :(   -  person Max Lobur    schedule 05.10.2016