2014-07-14 2 views
12

में वर्चुअलएन्व का उपयोग कैसे करें मैं निर्दिष्ट वर्चुअलएन्व पर काम करते समय कई संचालन करना चाहता हूं।मेकफ़ाइल

उदाहरण आदेश के लिए

make install 

source path/to/virtualenv/bin/activate 
pip install -r requirements.txt 

के बराबर होगा क्या यह संभव है?

उत्तर

12

बनाने के लिए आप कमांड के रूप में खोल खोल सकते हैं। इस खोल में आप कॉमंडलाइन से शुरू किए गए खोल में जो भी कर सकते हैं वह कर सकते हैं। उदाहरण:

install: 
    (\ 
     source path/to/virtualenv/bin/activate; \ 
     pip install -r requirements.txt; \ 
    ) 

ध्यान ; और \ करने के लिए भुगतान किया जाना चाहिए।

खुले और करीबी ब्रेस के बीच सबकुछ एक खोल के एक उदाहरण में किया जाएगा।

+5

'इस मामले()' में के लिए कोई ज़रूरत नहीं है। नियम निकाय में प्रत्येक पंक्ति के लिए पहले से ही एक नया खोल उदाहरण बना देता है। आपको लाइनों को पढ़ने और डिफ़ॉल्ट रूप से कई गोले के बजाय उन्हें एक खोल में निष्पादित करने के लिए निरंतरता मार्करों का उपयोग करने की आवश्यकता है। –

0

आप "VIRTUALENVWRAPPER_SCRIPT" नामक पर्यावरण चर का भी उपयोग कर सकते हैं। इस तरह:

install: 
    (\ 
     source $$VIRTUALENVWRAPPER_SCRIPT; \ 
     pip install -r requirements.txt; \ 
    ) 
6

मुझे इसके साथ भाग्य मिला है।

install: 
    source ./path/to/bin/activate; \ 
    pip install -r requirements.txt; \ 
0

आपको इसका उपयोग करना चाहिए, यह मेरे लिए क्षणिक है।

report.ipynb : merged.ipynb 
    (bash -c "source ${HOME}/anaconda3/bin/activate py27; which -a python; \ 
     jupyter nbconvert \ 
     --to notebook \ 
     --ExecutePreprocessor.kernel_name=python2 \ 
     --ExecutePreprocessor.timeout=3000 \ 
     --execute merged.ipynb \ 
     --output=$< $<") 
2

मैं कुछ है कि केवल जब requirements.txt परिवर्तन चलाता है का उपयोग कर पसंद:

venv: venv/bin/activate 

venv/bin/activate: requirements.txt 
    test -d venv || virtualenv venv 
    . venv/bin/activate; pip install -Ur requirements.txt 
    touch venv/bin/activate 

test: venv 
    . venv/bin/activate; nosetests project/test 

clean: 
    rm -rf venv 
    find -iname "*.pyc" -delete