我正在尝试在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/
Run Code Online (Sandbox Code Playgroud)
这在任何pip install命令运行之前发生.
如果我heroku run bash然后手动运行source .heroku/venv/bin/activate && pip install M2Crypto它安装没有问题,我的应用程序在bash提示符内工作该实例的生命周期.
我认为当初始pip install -r requirements运行时,PATH设置存在问题......任何想法?
答案是..
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/
Run Code Online (Sandbox Code Playgroud)
$ BUILD_DIR是在执行buildpack时构建东西的地方-不是/ app /(这是应用程序运行时所在的地方!
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |