Установить python virtualenv в vim
Я использую vim для кодирования и для кодирования python в частности. Часто я хочу выполнить текущий буфер с интерпретатором Python. (например, для запуска unittests), обычно я делаю это с :!python % <Enter>
этот scenatio будет работать отлично работает с глобальными Python, но я хочу вместо того, чтобы запустить виртуальное окружение для Python. Как включить virtualenv в vim? Можно ли переключить virtualenv во время выполнения?
Я использую macvim
4 ответов
вот что я использую (извините, подсветка винтовая).
" 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 2.7 из Python.org вы должны перекомпилировать MacVim с помощью --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
в качестве аргумента ./configure
.
надеюсь, что это поможет!
EDIT: только одна заметка об атрибуции: большая часть детективной работы, которая пошла на написание этой маленькой песенки, была сделана этот блогер, и он заслуживает похвалы.
активируйте virtualenv перед запуском vim. Вы автоматически получите соответствующий экземпляр интерпретатора.
существует также плагин vim на github:
https://github.com/jmcantrell/vim-virtualenv
Я не пробовал, но, похоже, это также решает вопрос.
эта проблема действительно беспокоила меня в течение длительного времени, пока я не использую плагин vim-conda. Просто добавьте плагин 'cjrh /vim-conda' в свой~/.vimrc и он будет работать. Вы также можете увидеть подробную инструкцию https://github.com/cjrh/vim-conda.