Свежее развертывание на Heroku терпит неудачу с «использование –allow-notverified PIL, чтобы разрешить»

Пробовал развертывание проекта Django в новом приложении на Heroku (код работает в других экземплярах за последние два года) – и был поражен этим:

Downloading/unpacking PIL==1.1.7 (from -r requirements.txt (line 7)) Could not find any downloads that satisfy the requirement PIL==1.1.7 (from -r requirements.txt (line 7)) Some insecure and unverifiable files were ignored (use --allow-unverified PIL to allow). Cleaning up... No distributions at all found for PIL==1.1.7 (from -r requirements.txt (line 7)) Storing debug log for failure in /app/.pip/pip.log ! Push rejected, failed to compile Python app 

Я знаю о недавних изменениях в pip и хотел бы использовать безопасные пакеты, но пока все они не будут правильно упакованы в соответствии с ожиданиями пика, нам нужны некоторые обходные пути. В частности, отсутствие флажка -allow-all-unverified делает это пробным и ошибочным делом с использованием черных ящиков вместо безболезненного развертывания.

Есть ли разумный способ преодолеть этот блокпост? (Не только PIL, но это первый пакет, который потерпел неудачу, есть еще несколько таких, как pyPdf, которые потерпят неудачу, если мне удастся это исправить)

Любые указатели оценили!

Я спросил сопровождающего, и он ответил простым решением. Я подробно расскажу, как это сделать в ответ на мой собственный вопрос. Вот что вам нужно сделать сейчас – пока пакеты не будут размещены внутри страны и не будут проверены.

На локальной машине создайте новую виртуальную среду и добавьте одну строку поверх файла requirements.txt :

--allow-all-external

Сохраните его и запустите:

pip install -r requirements.txt --download="~/temp/packages"

Это будет просто взять каждое имя пакета из requirements.txt и загрузить пакет в каталог ~/temp/packages и проверить его.

Для каждого пакета, который не прошел проверку, добавьте еще одну строку в файл requirements.txt , чуть ниже первой строки, разрешающей все внешние пакеты, которая выглядит следующим образом:

--allow-unverified package-name

Возможно, вы захотите выполнить ping сопровождающего, чтобы исправить это;)

Продолжайте, пока pip завершится успешно, затем зафиксируйте обновленный файл requirements.txt для vcs и разверните.

Это все.