Вопрос

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

Этот сценарий будет работать отлично работает с Global Python, но вместо этого я хочу запустить Virtualenv Python. Как я могу включить Virtualenv в Vim? Можно ли переключить 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 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..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top