Domanda

Io uso Vim per la codifica e per la codifica di pitone in particolare. Spesso voglio eseguire il buffer corrente con interprete Python. (Ad esempio per Unittests RUN), di solito lo faccio con :!python % <Enter>

Questa scenatio funzionerà funziona bene con python globale, ma voglio correre virtualenv python, invece. Come faccio ad attivare virtualenv all'interno di vim? E 'possibile attivare virtualenv sul runtime?

Sto usando MacVim

È stato utile?

Soluzione

Ecco quello che uso (scusate l'evidenziazione è irregolare).

" 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

Si noti che è necessario avere compilato MacVim contro il Python che si sta utilizzando per il virtualenv, per esempio se avete scaricato Python 2.7 da Python.org si dovrebbe ricompilare MacVim utilizzando --with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config come argomento di ./configure.

Speranza che aiuta!

Modifica Solo una nota di attribuzione: Un sacco di lavoro da detective che è andato in scrittura di questo canzoncina è stato fatto da questo blogger , e si merita un po 'del credito.

Altri suggerimenti

Attiva la tua virtualenv prima di iniziare vim. Si otterrà automaticamente l'istanza dell'interprete corrispondente.

C'è anche un vim plugin su github:

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

Non ho provato, ma sembra di risolvere la questione così.

questo problema in realtà mi dava fastidio per lungo tempo fino a quando io uso il plugin di vim-Conda. Basta aggiungere Plugin 'cjrh / vim-conda' nel vostro ~ / .vimrc e funzionerà. È anche possibile visualizzare le istruzioni dettagliate https://github.com/cjrh/vim-conda .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top