Не удалось установить python-ldap в Heroku
Похоже, что Heroku не поддерживает python-ldap. Установка pip с "python-ldap==2.3.13" в файле needs.txt завершилась ошибкой в Heroku:
gcc -pthread -fno-строго-псевдонимы -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-прототипы -fPIC -DHAVE_LIBLDAP_R -DHAVE_SASL -DHAVE_TLS -DLDAPMODULE_VERSdules =2.3.13 -uso openldap-2.3/include -I/usr/include/sasl -I/usr/local/include/python2.7 -c Модули /LDAPObject.c -o build/temp.linux-x86_64-2.7/ Модули /LDAPObject.o
Модули /LDAPObject.c:18:18: ошибка: sasl.h: нет такого файла или каталога
Похоже, что у Heroku нет библиотек, необходимых для python-ldap, и я не знаю, есть ли способ установить библиотеки зависимостей, кроме "pip".
Какое рекомендуемое решение для поддержки аутентификации ldap в стеке Heroku Python/Django?
Ваша помощь очень ценится.
3 ответа
Вы можете создать собственный сборочный пакет, который продается в любых библиотеках, которые вам нравятся. Посмотрите на https://github.com/cirlabs/heroku-buildpack-geodjango он устанавливает библиотеку через Curl.
Я знаю, что этот вопрос старый, но у меня была та же проблема, и Google привел меня сюда. Я напишу то, что нашел, так что, возможно, я смогу помочь людям, которые имеют ту же проблему и хотят найти работающее решение.
Как сказал @Schneems, вы можете создать свой собственный buildpack-пакет с помощью heroku и добавить свою собственную среду.
Вы можете создать собственный сборочный пакет, содержащий python-ldap, но создание собственного сборочного пакета с нуля на самом деле не подходит для некоторых, поэтому вы можете раскошелиться на официальный сборочный пакет python https://github.com/heroku/heroku-buildpack-python и добавьте его python-ldap как @damgad.
Проблема в том, что репозиторий от @damgad устарел по сравнению с последней версией официального пакета python/buildpack. (Во время этого комментария)
Я нашел этот запрос на удаление (теперь закрытый) https://github.com/heroku/heroku-buildpack-python/pull/271 от парня, который использовал код @damgad и создал свой собственный форк https://github.com/josegonzalez/heroku-buildpack-python.
Я пытался использовать его, но его репозиторий устарел и получил некоторые ошибки при развертывании моего приложения.
Поэтому я только что создал свой собственный форк официального пакета сборки heroku / python и добавил его https://github.com/josegonzalez/heroku-buildpack-python. код, исправил только некоторые ошибки, которые я получал, и у вас есть этот в настоящее время работающий пакет сборки с python-ldap https://github.com/manuggz/heroku-buildpack-python.
Этот buildpack поддерживает python3.6 и это все, что я хотел.
Tl; dr Вы должны использовать этот обновленный сборочный пакет, если вы хотите использовать python-ldap (или создать свой собственный разветвленный официальный сборочный пакет):
$ heroku buildpacks:set https://github.com/manuggz/heroku-buildpack-python