我正在尝试在 Heroku 上安装 M2Crypto。这依赖于安装 SWIG。
我创建了一个自定义编译的swig
可执行文件和一个自定义 buildpack。
然后git push
我将代码上传到 Heroku,自定义 buildpack 安装 SWIG 然后尝试安装 M2Crypto 但失败,因为它找不到swig
.
这是 buildpack 自定义:
# 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
命令运行之前。
如果我heroku run bash
然后手动运行source .heroku/venv/bin/activate && pip install M2Crypto
它安装没有问题,并且我的应用程序在该实例的生命周期内在 bash 提示符内工作。
我认为初始pip install -r requirements
运行时 PATH 设置存在问题......有什么想法吗?