python heroku geoip buildpack

python - Instalando heroku de compilaciones personalizadas y problema con las rutas de la Biblioteca



geoip buildpack (2)

Resolví ingenuamente un problema similar modificando el script de compilación heroku-buildpack-python para no anular las variables LD_LIBRARY_PATH e INCLUDE_PATH, así como para agregar las variables LD_LIBRARY_PATH e INCLUDE_PATH actuales durante su exportación para no sobrescribirlas.

Aquí está mi bifurcación: https://github.com/jasrusable/heroku-buildpack-python

Estoy intentando instalar una compilación personalizada en heroku, así que estoy usando una variedad de formas para intentar la instalación de una tercera parte usando los paquetes de compilación. En mi archivo .buildpacks tengo:

https://github.com/ddollar/heroku-buildpack-apt https://github.com/heroku/heroku-buildpack-python.git

y en mi Aptfile tengo lo siguiente: libgeoip-dev que es un requisito previo para el geoip que se instala con los requirements.txt ( GeoIP==1.3.2 )

Aquí están mis variables de entorno:

remote: C_INCLUDE_PATH is /app/.heroku/vendor/include:/app/.heroku/vendor/include:/app/.heroku/python/include remote: CPATH is /tmp/build_xxxxx/.apt/usr/include: remote: LD_LIBRARY_PATH is /app/.heroku/vendor/lib:/app/.heroku/vendor/lib:/app/.heroku/python/lib

El mensaje de error que estoy recibiendo es:

remote: building ''GeoIP'' extension remote: creating build remote: creating build/temp.linux-x86_64-2.7 remote: gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/app/.heroku/python/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing remote: creating build/lib.linux-x86_64-2.7 remote: gcc -pthread -shared build/temp.linux-x86_64-2.7/py_GeoIP.o -lGeoIP -o build/lib.linux-x86_64-2.7/GeoIP.so remote: /usr/bin/ld: cannot find -lGeoIP remote: collect2: error: ld returned 1 exit status remote: error: command ''gcc'' failed with exit status 1

¿Cuál es la forma más inteligente de solucionar esto? Supongo que no puedo cambiar el lugar donde se instala el administrador de paquetes. ¿Hay alguna forma de evitar esto?


https://github.com/heroku/heroku-buildpack-python/blob/master/bin/compile#L99-L107

# Prepend proper path buildpack use. export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH export PYTHONUNBUFFERED=1 export LANG=en_US.UTF-8 export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.hero ku/vendor/lib:/app/.heroku/python/lib export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:$BUILD_DIR/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config

contra

https://github.com/ddollar/heroku-buildpack-apt/blob/master/bin/compile#L75-L81

export PATH="$BUILD_DIR/.apt/usr/bin:$PATH" export LD_LIBRARY_PATH="$BUILD_DIR/.apt/usr/lib/x86_64-linux-gnu:$BUILD_DIR/.apt/usr/lib/i386-linux-gnu:$BUILD_DIR/.apt/usr/lib:$LD_LIBRARY_PATH" export LIBRARY_PATH="$BUILD_DIR/.apt/usr/lib/x86_64-linux-gnu:$BUILD_DIR/.apt/usr/lib/i386-linux-gnu:$BUILD_DIR/.apt/usr/lib:$LIBRARY_PATH" export INCLUDE_PATH="$BUILD_DIR/.apt/usr/include:$INCLUDE_PATH" export CPATH="$INCLUDE_PATH" export CPPPATH="$INCLUDE_PATH" export PKG_CONFIG_PATH="$BUILD_DIR/.apt/usr/lib/x86_64-linux-gnu/pkgconfig:$BUILD_DIR/.apt/usr/lib/i386-linux-gnu/pkgconfig:$BUILD_DIR/.apt/usr/lib/pkgconfig:$PKG_CONFIG_PATH"

El heroku-buildpack-python no está jugando bien con heroku-buildpack-apt ya que está agrupando variables importantes para que gcc vincule su extensión de python con la geoip lib. Archivo de un error en el rastreador de problemas.

Rastreador de problemas: https://github.com/heroku/heroku-buildpack-python/issues