似乎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认证的推荐解决方案是什么?
非常感谢您的帮助。
答案 0 :(得分:3)
您可以在任何您喜欢的库中创建供应商的自定义构建包。看一下https://github.com/cirlabs/heroku-buildpack-geodjango它通过Curl安装一个库。
答案 1 :(得分:2)
我知道这个问题已经过时了,但我遇到了同样的问题,谷歌把我带到了这里。我会写下我发现的内容,也许我可以帮助那些遇到同样问题的人,并希望找到目前正在使用的解决方案。
正如@Schneems所说,您可以使用heroku创建自己的buildpack并添加自定义环境。
你可以创建一个包含python-ldap的自定义buildpack,但是,从零创建一个自定义buildpack对某些人来说实际上不是一个选项,所以你可以派出官方的python buildpack https://github.com/heroku/heroku-buildpack-python并将它添加为python-ldap as @damgad做了。
这里的问题是@damgad的repo与官方python / buildpack的最新版本相比已经过时了。 (在评论时)
我从使用@damgad代码的人那里找到了这个拉请求(现已关闭)https://github.com/heroku/heroku-buildpack-python/pull/271并创建了自己的分叉https://github.com/josegonzalez/heroku-buildpack-python。
我尝试过使用它,但是他的回购已经过时,部署了我的应用程序时遇到了一些错误。
所以我刚刚创建了自己的fork,当前官方的heroku / python buildpack添加了它https://github.com/josegonzalez/heroku-buildpack-python。代码,修复了我得到的一些错误,你现在正在使用python-ldap https://github.com/manuggz/heroku-buildpack-python工作的buildpack。
这个buildpack支持python3.6,这就是我想要的。
Tl; dr 如果您想使用python-ldap(或创建自己的official buildpack分支),则必须使用此更新 buildpack:< / p>
$ heroku buildpacks:set https://github.com/manuggz/heroku-buildpack-python
答案 2 :(得分:1)
我最近创建了支持python-ldap
的heroku buildpack。它可以在my github repo上找到。
要使其工作,您只需要指定环境变量:
heroku config:set BUILDPACK_URL=https://github.com/damgad/heroku-buildpack-python-ldap.git