python-ldap无法在Heroku中安装

时间:2012-05-09 03:54:43

标签: python heroku python-ldap

似乎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认证的推荐解决方案是什么?

非常感谢您的帮助。

3 个答案:

答案 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