在Heroku中安装python-ldap失败了。

5
看起来Heroku不支持python-ldap。在requirements.txt文件中使用“python-ldap==2.3.13”进行pip安装失败,并出现以下错误:
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DHAVE_LIBLDAP_R -DHAVE_SASL -DHAVE_TLS -DLDAPMODULE_VERSION=2.3.13 -IModules -I/usr/local/openldap-2.3/include -I/usr/include/sasl -I/usr/local/include/python2.7 -c Modules/LDAPObject.c -o build/temp.linux-x86_64-2.7/Modules/LDAPObject.o
Modules/LDAPObject.c:18:18: error: sasl.h: No such file or directory
看起来Heroku没有python-ldap所需的库,我不知道是否有一种方法可以安装除'pip'之外的依赖库。
在Heroku的Python / Django堆栈中支持ldap身份验证的推荐解决方案是什么?
非常感谢您的帮助。
3个回答

3

2
我知道这个问题很旧,但我遇到了同样的问题,谷歌把我带到了这里。我将写下我所发现的内容,以便帮助那些有同样问题并想要当前可用解决方案的人。

正如@Schneems所说,你可以使用heroku创建自己的buildpack并添加自定义环境变量。

你可以创建一个包含python-ldap的自定义buildpack,但是从零开始创建自定义buildpack对于某些人来说并不是一个真正的选择,因此您可以fork官方的python buildpack https://github.com/heroku/heroku-buildpack-python并像@damgad一样添加python-ldap。

问题在于,@damgad的存储库与最近版本的官方python/buildpack相比已经过时。(在本评论发布时)

我发现了这个pull request(现在已关闭)https://github.com/heroku/heroku-buildpack-python/pull/271,其中一个人使用了@damgad的代码并创建了自己的fork https://github.com/josegonzalez/heroku-buildpack-python

我尝试使用它,但他的存储库已经过时,并在部署我的应用程序时出现了一些错误。

所以我只是创建了自己的fork,将当前官方heroku/python buildpack添加到其中 https://github.com/josegonzalez/heroku-buildpack-python。代码,修复了一些我遇到的错误,你现在可以使用这个支持python-ldap的工作buildpack https://github.com/manuggz/heroku-buildpack-python

此buildpack支持python3.6,这就是我想要的全部内容。

Tl;dr 如果您想使用python-ldap(或者创建自己的fork官方buildpack),则必须使用此更新的 buildpack:

$ heroku buildpacks:set https://github.com/manuggz/heroku-buildpack-python 

1

我最近创建了一个支持python-ldap的 Heroku Buildpack,它可以在我的 Github 代码库上获取。

要让它工作,你只需要指定环境变量,像这样:

heroku config:set BUILDPACK_URL=https://github.com/damgad/heroku-buildpack-python-ldap.git

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接