我使用vim進行編碼,特別是用於python編碼。通常我想用python解釋器執行當前的緩衝區。 (例如運行unittests),通常我這樣做:!python % <Enter>
在vim中設置python virtualenv
這scenatio將工作正常與全球python,但我想運行virtualenv python代替。如何在vim中啓用virtualenv?是否有可能在運行時切換virtualenv?
我使用的是macvim
我使用vim進行編碼,特別是用於python編碼。通常我想用python解釋器執行當前的緩衝區。 (例如運行unittests),通常我這樣做:!python % <Enter>
在vim中設置python virtualenv
這scenatio將工作正常與全球python,但我想運行virtualenv python代替。如何在vim中啓用virtualenv?是否有可能在運行時切換virtualenv?
我使用的是macvim
以下是我使用的(對不起突出顯示是扭曲的)。
" 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編譯對Python中,你正在使用的virtualenv中,例如如果您從Python.org下載了Python 2.7,則應使用--with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
作爲./configure
的參數重新編譯MacVim。
希望有幫助!
編輯:只是一個音符歸屬:很多是走進了寫這個小玩意是由this blogger做偵探工作的,他值得一些信貸。
在啓動vim之前激活您的virtualenv。您將自動獲得相應的解釋器實例。
我使用的是MacVim,我從Dock開始它,所以它不是一個很好的選擇......據我所知,激活virtualenv完全是關於修改PATH,PYTHONHOME和PYTHONPATH環境變量,也許一些其他也一樣。我不介意將virtualenv的'script'移植到vim,我只是想知道是否有現有的解決方案。 – 2010-10-07 12:35:42
我發現這是行不通的,如果virtualenv python是與vim編譯的版本不同的版本(例如2 vs 3) – hwjp 2016-06-21 13:51:48
對不起,對我不適用OSX + MacVim – cmcginty 2017-05-10 05:53:10
我試過這個,但它似乎不適用於Mac OSX 10.8(山獅) - 一些其他潛在的問題也許存在 – Lionel 2013-06-25 02:53:59
我有問題讓它與MacVim一起工作。 – Chris 2014-10-29 20:13:57
@Chris:這很可能是因爲[此問題](http://stackoverflow.com/questions/9853584/how-to-use-correct-ruby-in-vim-how-to-modify-path-in -vim/12146694#12146694)。 – Nolsto 2015-03-06 04:09:31
這個問題實際上困擾了我很長一段時間,直到我使用vim-conda的插件。只需在〜/ .vimrc中添加插件'cjrh/vim-conda'即可。您還可以查看詳細說明https://github.com/cjrh/vim-conda。
哇,很酷,這是什麼我在尋找,非常感謝!我不知道virtualenv創建這個activate_this.py – 2010-10-25 19:27:54
嗨dwf,你能看看我的問題在這裏看看爲什麼我的輸出是奇怪的? http://stackoverflow.com/questions/17288843/macvim-uses-wrong-python-virtualenv – Lionel 2013-06-25 03:49:30