While writing another python script under pipenv I have met a problem that YCM autocomplete worked only for built in functions. That was annoying because without autocomplete YCM looses it’s sense.
Solution
Let’s create module for filetype plugin.
cat ~/.vim/after/ftplugin/python.vim
if !empty($VIRTUAL_ENV)
let g:ycm_server_python_interpreter = $VIRTUAL_ENV . '/bin/python'
let $PYTHONPATH = finddir('site-packages', $VIRTUAL_ENV . '/lib/*')
endif
Then you can simply run command
pipenv run vim some/script.py
And now YCM works correctly :3