在vim中设置python虚拟环境
我用vim来写代码,特别是写Python代码。经常我想用Python解释器来执行当前的代码文件(比如运行单元测试),通常我会用 :!python % <Enter>
这个命令来做到。
这个方法在全局的Python环境下运行得很好,但我想用虚拟环境中的Python来执行。请问我该怎么在vim中启用虚拟环境呢?在运行时可以切换到虚拟环境吗?
我使用的是macvim。
6 个回答
3
22
在启动vim之前,先激活你的虚拟环境。这样你就会自动获得对应的解释器实例。
20
这是我使用的内容(抱歉高亮显示有点问题)。
" 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版本相匹配。例如,如果你是从Python.org下载的Python 2.7,那么在重新编译MacVim时,你需要加上这个参数:--with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
,在运行./configure
的时候使用。
希望这对你有帮助!
补充说明:我想提一下,写这段内容时,很多调查工作是由这位博主完成的,他应该得到一些功劳。