Установить python virtualenv в vim


Я использую vim для кодирования и для кодирования python в частности. Часто я хочу выполнить текущий буфер с помощью интерпретатора python. (например, для запуска unittests), обычно я делаю это с :!python % <Enter>

Этот сценарий будет работать отлично работает с глобальным python, но я хочу запустить virtualenv python вместо этого. Как включить virtualenv в vim? Можно ли включить virtualenv во время выполнения?

Я использую macvim

4 12

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.

Надеюсь, это поможет!

Правка: только одно замечание об атрибуции: большая часть детективной работы, которая пошла на написание этой маленькой песенки, была сделана этим блогером , и он заслуживает некоторой похвалы.

Активируйте virtualenv перед запуском vim. Вы автоматически получите соответствующий экземпляр интерпретатора.

На github также есть плагин vim:

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

Я еще не пробовал, но, кажется, это тоже решает вопрос.

Этот вопрос действительно беспокоил меня долгое время, пока я не использовал плагин vim-conda. Просто добавьте плагин 'cjrh/vim-conda' в свой~/.vimrc и это будет работать. Вы также можете посмотреть подробную инструкцию https://github.com/cjrh/vim-conda .