2012-04-26 16 views
6

द्वारा उपयोग किए जाने वाले एक्जिक्यूटिव को इंस्टॉल करना मैं हेरोकू पर M2Crypto इंस्टॉल करने का प्रयास कर रहा हूं। यह एसडब्ल्यूआईजी स्थापित होने पर निर्भर करता है।हेरोकू बिल्डपैक - पाइथन पैकेज

मैंने custom compiled swig executable और custom buildpack बनाया है।

मैं फिर git push हेरोोकू तक अपना कोड अप करता हूं, कस्टम बिल्डपैक 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 से पहले आदेशों चलाए जा रहे हैं:

यह buildpack अनुकूलन है।

यदि मैं heroku run bash और मैन्युअल रूप से source .heroku/venv/bin/activate && pip install M2Crypto चलाता हूं तो यह कोई समस्या नहीं स्थापित करता है और मेरा ऐप उस उदाहरण के जीवनकाल के लिए बैश प्रॉम्प्ट के अंदर काम करता है।

मुझे लगता है कि शुरुआती pip install -r requirements रनों के दौरान पैथ सेटिंग में कोई समस्या है ... कोई विचार?

+0

धन्यवाद! आप इसे पोस्ट करने के लिए! महान सवाल, क्योंकि मैं भी M2Crypto स्थापित करने की कोशिश कर रहा हूं। इससे भी बेहतर: अपना बिनपैक बनाने और साझा करने के लिए धन्यवाद! आपको अपना उत्तर नीचे पोस्ट करना चाहिए ताकि आपको इसके लिए क्रेडिट मिल सके। मैं खुशी से आपको उखाड़ फेंक दूंगा :) – culix

+0

शानदार - उपर्युक्त के लिए धन्यवाद! – jvc26

+0

यह बहुत अच्छा काम कर रहा है। दुर्भाग्य से यह मेरे लिए काम करना बंद कर दिया। इसलिए मैंने आधिकारिक हेरोकू-बिल्डपैक-पायथन को क्लोन किया और एसडब्ल्यूआईजी के लिए सुई लाइनों को जोड़ा: https://github.com/CulturePlex/heroku-buildpack-python –

उत्तर

4

और जवाब है ..

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 निष्पादित किया जाता है बनाया गया है - नहीं/ऐप्स/(जो जहां यह रहता है जब एप्लिकेशन रन