Установите python virtualenv в vim - PullRequest
       5

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

13 голосов
/ 07 октября 2010

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

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

Я использую Macvim

Ответы [ 4 ]

16 голосов
/ 25 октября 2010

Вот что я использую (извините, подсветка шустрая).

" 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.

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

РЕДАКТИРОВАТЬ: Только одно примечание об атрибуции: многоИз детективной работы, которая пошла на написание этой маленькой заметки, справился этот блогер , и он заслуживает некоторой похвалы.

9 голосов
/ 07 октября 2010

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

2 голосов
/ 11 мая 2013

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

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

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

0 голосов
/ 06 марта 2018

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

...