5

Heroku 似乎不支持 python-ldap。在 requirements.txt 文件中使用“python-ldap==2.3.13”安装 pip 失败,在 Heroku 中出现以下错误:

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:错误:sasl.h:没有这样的文件或目录

似乎 Heroku 没有 python-ldap 所需的库,我不知道除了“pip”之外是否有安装依赖库的方法。

在 Heroku 的 Python/Django 堆栈中支持 ldap 身份验证的推荐解决方案是什么?

非常感谢您的帮助。

4

3 回答 3

3

您可以在您喜欢的任何库中创建供应商的自定义构建包。看看https://github.com/cirlabs/heroku-buildpack-geodjango它通过 Curl 安装了一个库。

于 2012-05-09T18:20:07.720 回答
2

我知道这个问题很老,但我遇到了同样的问题,谷歌把我带到了这里。我会写下我发现的内容,这样也许我可以帮助有同样问题并想要一个当前有效的解决方案的人。

正如@Schneems 所说,您可以使用heroku 创建自己的构建包并添加您的自定义环境。

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

这里的问题是来自@damgad 的repo 与官方python/buildpack 的最新版本相比已经过时。(在发表此评论时)

我从一个使用 @damgad 代码并创建自己的 fork 的人那里找到了这个拉取请求(现已关闭)https://github.com/heroku/heroku-buildpack-python/pull/271 https://github.com/josegonzalez /heroku-buildpack-python

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

所以我刚刚创建了我自己的当前官方 heroku/python buildpack 的分支,添加了它 https://github.com/josgonzalez/heroku-buildpack-python。代码,仅修复了我遇到的一些错误,并且您拥有当前正在使用 python-ldap https://github.com/manuggz/heroku-buildpack-python的 buildpack 。

这个 buildpack 支持 python3.6,这就是我想要的。

Tl;dr如果你想使用 python-ldap (或者创建你自己的官方 buildpack的分支),你必须使用这个更新的 buildpack :

$ heroku buildpacks:set https://github.com/manuggz/heroku-buildpack-python 
于 2018-05-17T23:46:00.597 回答
1

我最近创建了支持python-ldap. 它在我的 github repo上可用。

要使其工作,您只需要指定这样的环境变量:

heroku config:set BUILDPACK_URL=https://github.com/damgad/heroku-buildpack-python-ldap.git
于 2014-11-06T10:10:17.817 回答