Estoy tratando de instalar M2Crypto en Heroku. Esto se basa en la instalación de SWIG.Heroku buildpacks - instalar ejecutables que son utilizados por los paquetes de Python
He creado un custom compiled swig
executable y un custom buildpack.
Mi código hasta Heroku, el buildpack personalizado instala SWIG luego intenta instalar M2Crypto pero falla porque no puede encontrar swig
.
Esta es la personalización buildpack: se ejecutan
# Install SWIG
if [ ! -d $CACHE_DIR/swig ]; then
cd $BUILD_DIR
echo "-----> Fetching and installing SWIG 2"
curl -O https://s3.amazonaws.com/guybowden/swig.tar.gz >/dev/null 2>&1
echo "-----> Installing ..."
tar xzvf swig.tar.gz >/dev/null 2>&1
mv swig $CACHE_DIR/swig
rm swig.tar.gz
echo "SWIG installed" | indent
fi
mkdir -p .paybox
cp -R $CACHE_DIR/swig .paybox
echo "updating path..." | indent
PATH=$PATH:/app/.paybox/swig/bin/
export PATH
echo $PATH | indent
echo "setting SWIG_LIB environment var"
export SWIG_LIB=/app/.paybox/swig/share/swig/2.0.5/
Esto ocurre antes de cualquier pip install
comandos.
Si yo heroku run bash
y luego ejecuto manualmente source .heroku/venv/bin/activate && pip install M2Crypto
no se instala ningún problema y mi aplicación funciona dentro del indicador bash durante toda la vida de esa instancia.
Creo que hay un problema con la configuración PATH cuando el pip install -r requirements
inicial se ejecuta ... alguna idea?
gracias! ¡por publicar esto! Gran pregunta, ya que también estoy tratando de instalar M2Crypto. Incluso mejor: ¡gracias por crear y compartir tu binpack! Debes publicar tu respuesta a continuación para que puedas obtener el crédito. Te felicito :) – culix
Brillante - gracias por lo de arriba! – jvc26
Esto ha estado funcionando genial. Lamentablemente dejó de funcionar para mí. Así que cloné el heroku-buildpack-python oficial y agregué las líneas necesarias para SWIG: https://github.com/CulturePlex/heroku-buildpack-python –