Merge PR #1358 'Fix python setup'

This commit is contained in:
Thiago de Arruda 2014-10-31 07:45:05 -03:00
commit 822d813575

View File

@ -4,6 +4,14 @@ if exists("did_python_setup") || &cp
endif
let did_python_setup = 1
" Prefix for naming things and displaying output.
let s:plugin_name = 'Python setup'
function! s:ShowError(message)
echohl ErrorMsg
echomsg s:plugin_name . ': ' . a:message . '.'
echohl None
endfunction
let s:get_version =
\ ' -c "import sys; sys.stdout.write(str(sys.version_info[0]) + '.
@ -24,23 +32,29 @@ elseif executable('python2')
" In some distros, python3 is the default python
let s:python_interpreter = 'python2'
else
call s:ShowError('No python interpreter found')
finish
endif
" Make sure we pick correct python version on path.
let s:python_interpreter_path = exepath(s:python_interpreter)
let s:python_version = systemlist(s:python_interpreter_path . ' --version')[0]
" Execute python, import neovim and print a string. If import_result matches
" the printed string, we can probably start the host
let s:import_result = system(s:python_interpreter .
let s:import_result = system(s:python_interpreter_path .
\ ' -c "import neovim, sys; sys.stdout.write(\"ok\")"')
if s:import_result != 'ok'
call s:ShowError('No neovim module found for ' . s:python_version)
finish
endif
let s:pyhost_id = rpcstart(s:python_interpreter,
let s:pyhost_id = rpcstart(s:python_interpreter_path,
\ ['-c', 'import neovim; neovim.start_host()'])
" Evaluate an expression in the script host as an additional sanity check, and
" to block until all providers have been registered(or else some plugins loaded
" by the user's vimrc would not get has('python') == 1
if rpcrequest(s:pyhost_id, 'python_eval', '"o"+"k"') != 'ok' || !has('python')
" Something went wrong
call s:ShowError('Something went wrong setting up ' . s:python_version)
call rpcstop(s:pyhost_id)
endif