Heroku buildpacks - 安装 Python 包使用的可执行文件

2023-11-22

我正在尝试在 Heroku 上安装 M2Crypto。这依赖于安装的 SWIG。

我创建了一个定制编译swig可执行文件 and a 定制构建包.

I then git push我的代码到 Heroku,自定义构建包安装 SWIG 然后尝试安装 M2Crypto 但失败,因为它找不到swig.

这是构建包定制:

# 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/

这发生在任何pip install命令已运行。

If I heroku run bash然后手动运行source .heroku/venv/bin/activate && pip install M2Crypto它安装没有问题,并且我的应用程序在该实例的生命周期内在 bash 提示符下工作。

我认为初始时 PATH 设置有问题pip install -r requirements运行...有什么想法吗?


答案是..

PATH=$PATH:$BUILD_DIR/.paybox/swig/bin/
export PATH
echo $PATH | indent
echo "setting SWIG_LIB environment var"
export SWIG_LIB=$BUILD_DIR/.paybox/swig/share/swig/2.0.5/

$BUILD_DIR 是执行 buildpack 时构建内容的位置 - 而不是 /app/ (这是应用程序运行时它所在的位置!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Heroku buildpacks - 安装 Python 包使用的可执行文件 的相关文章

随机推荐