Не удалось установить 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 

Я недавно создал герою buildpack, который поддерживает python-ldap, Это доступно на моем репозитории github.

Чтобы это работало, вам нужно всего лишь указать переменную окружения:

heroku config:set BUILDPACK_URL=https://github.com/damgad/heroku-buildpack-python-ldap.git
Другие вопросы по тегам