2010-10-07 9 views
12

में पायथन वर्चुअलनेव सेट करें मैं कोडिंग और विशेष रूप से पायथन कोडिंग के लिए विम का उपयोग करता हूं। अक्सर मैं वर्तमान बफर को पायथन दुभाषिया के साथ निष्पादित करना चाहता हूं। (उदाहरण के लिए unittests चलाने के लिए), आमतौर पर मैं :!python % <Enter>विम

के साथ ऐसा करता है यह दृश्य वैश्विक पायथन के साथ ठीक काम करेगा, लेकिन मैं इसके बजाय वर्चुअलनव पायथन चलाने के लिए चाहता हूं। मैं vim के भीतर वर्चुअलenv कैसे सक्षम करूं? रनटाइम पर virtualenv स्विच करना संभव है?

मैं macvim

उत्तर

15

यहां मैं जो उपयोग करता हूं (क्षमा करें हाइलाइटिंग खराब है)।

" Function to activate a virtualenv in the embedded interpreter for 
" omnicomplete and other things like that. 
function LoadVirtualEnv(path) 
    let activate_this = a:path . '/bin/activate_this.py' 
    if getftype(a:path) == "dir" && filereadable(activate_this) 
     python << EOF 
import vim 
activate_this = vim.eval('l:activate_this') 
execfile(activate_this, dict(__file__=activate_this)) 
EOF 
    endif 
endfunction 

" Load up a 'stable' virtualenv if one exists in ~/.virtualenv 
let defaultvirtualenv = $HOME . "/.virtualenvs/stable" 

" Only attempt to load this virtualenv if the defaultvirtualenv 
" actually exists, and we aren't running with a virtualenv active. 
if has("python") 
    if empty($VIRTUAL_ENV) && getftype(defaultvirtualenv) == "dir" 
     call LoadVirtualEnv(defaultvirtualenv) 
    endif 
endif 

ध्यान दें कि आप MacVim संकलित की आवश्यकता है अजगर के खिलाफ आप virtualenv के लिए प्रयोग कर रहे हैं, उदाहरण के लिए यदि आपने Python.org से पायथन 2.7 डाउनलोड किया है तो आपको ./configure पर तर्क के रूप में --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config का उपयोग करके मैकवीम को दोबारा बनाना चाहिए।

आशा है कि मदद करता है!

संपादित करें: बस रोपण में से एक ध्यान दें: जासूसी काम है कि लेखन इस छोटे से छोटा गीत this blogger द्वारा किया गया था में चला गया का एक बहुत है, और वह क्रेडिट के कुछ योग्य है।

+0

वाह, कूल, यह वही है मैं देख रहा था, बहुत बहुत धन्यवाद! मुझे नहीं पता था वर्चुअलएन्व यह सक्रिय बनाता है_this.py –

+0

हाय dwf, क्या आप यहां मेरे प्रश्न को देख सकते हैं कि मेरा आउटपुट अजीब क्यों है? http://stackoverflow.com/questions/17288843/macvim-uses-wrong-python-virtualenv – Lionel

5

उपयोग कर रहा हूँ vim शुरू करने से पहले अपने virtualenv को सक्रिय करें। आप स्वचालित रूप से संबंधित दुभाषिया उदाहरण प्राप्त करेंगे।

+0

मैं मैकवीम का उपयोग कर रहा हूं, और मैं इसे डॉक से शुरू करता हूं, इसलिए यह वास्तव में एक अच्छा विकल्प नहीं है ... जहां तक ​​मैं वर्चुअलएन्व को सक्रिय करना समझता हूं, वह पाथ, पायथनहोम और पायथनपथ एनवी वर्र्स को संशोधित करने के बारे में है, शायद कुछ अन्य भी। वर्चुअलएन्व की सक्रिय 'स्क्रिप्ट' को विम करने के लिए मुझे कोई फर्क नहीं पड़ता, मैं बस सोच रहा था कि कोई मौजूदा समाधान है या नहीं। –

+0

मुझे लगता है कि वर्चुअलनव पायथन विम-संकलित एक से अलग संस्करण है (उदाहरण के लिए 2 बनाम 3) – hwjp

+0

क्षमा करें, मेरे लिए काम नहीं करता ओएसएक्स + मैकवीम – cmcginty

2

वहाँ भी GitHub पर एक vim प्लगइन है:

https://github.com/jmcantrell/vim-virtualenv

मैं इसे करने की कोशिश नहीं की है, लेकिन यह सवाल हल करने के लिए के रूप में अच्छी लगती है।

+2

मैंने यह कोशिश की है, लेकिन यह मैक ओएसएक्स 10.8 (माउंटेन शेर) पर काम नहीं कर रहा है - कुछ अन्य अंतर्निहित मुद्दे शायद – Lionel

+0

मौजूद है मुझे मैकवीम के साथ-साथ काम करने में समस्याएं आ रही हैं। – Chris

+1

@ क्रिस: यह [इस मुद्दे] की वजह से सबसे अधिक संभावना है (http://stackoverflow.com/questions/9853584/how-to-use-correct-ruby-in-vim-how-to-modify-path-in -vim/12146694 # 12146694)। – Nolsto

0

इस मुद्दे ने वास्तव में मुझे लंबे समय तक परेशान किया जब तक कि मैं विम-कोंडा की प्लगइन का उपयोग नहीं करता। बस अपने ~/.vimrc में प्लगइन 'cjrh/vim-conda' जोड़ें और यह काम करेगा। आप विस्तृत निर्देश https://github.com/cjrh/vim-conda भी देख सकते हैं।