Closed lkhphuc closed 4 years ago
I did a check. From this commit onward (https://github.com/davidhalter/jedi-vim/commit/2a43448f3bbcd4fed07db2c223f054e6e4b1a4ec) jedi doesn't use my activated conda-env as executable any more.
Prior to this commit, jedi-vim use my activated conda-env as executable, but if no conda-env is activated (using root conda env), jedi-vim does not recognize the root conda-env.
Apparently Jedi only check environment in $VIRTUAL_ENV, so my solution for now is:
export VIRTUAL_ENV=$CONDA_PREFIX
Is $CONDA_PREFIX
similar to $VIRTUAL_ENV
in this regard?
The environment var of conda is not well documented, but it appears to be the case here.
[I] ✘130 ➜ conda deactivate
[N] ➜ echo $CONDA_PREFIX
/Users/phucle/miniconda3
[I] ➜ conda activate pytorch
[N] ➜ echo $CONDA_PREFIX
/Users/phucle/miniconda3/envs/pytorch
This project use $CONDA_PREFIX
to find virtual environment in addition to $VIRTUAL_ENV
: https://github.com/ContinuumIO/intake/commit/73be37e2f86ffcc5f9a91cd4e81658c8550d1427#diff-cad0d0e903d312c7329edb300804bf4cR54
This comment too: https://github.com/conda/conda/issues/2764#issuecomment-339860431
Just wanted to confirm that this solution worked for me too, for getting Jedi to use my active conda environment. I added to my .vimrc:
let $VIRTUAL_ENV = $CONDA_PREFIX
But it seems like this should be handled by jedi
If it helps you guys, I'm happy to discuss a pull request in Jedi that does this. It's probably pretty easy to do. Essentially it's another if.
Here's an example, @roxma did this already for a Jedi fork: https://github.com/ncm2/ncm2-jedi/pull/20/files (@roxma or @shanest it would be nice if you guys could test this on Jedi master and PR this).
Thanks; I'll take a look at this and make a PR soon!
Would be great if this could be fixed.
Does pull request 1440 work for you? That fixed this issue for me :)
Sorry I don't use conda anymore.
Thank you very much, it fixed my issue.
I don't think it works any longer. I added let $VIRTUAL_ENV = $CONDA_PREFIX
to my .vimrc
.
Here's the debug info:
verbose JediDebugInfo
Using Python version 3 to access Jedi. Error when trying to import vim: Vim(python3):E837: This Vim cannot execute :py3 after using :python python3 failed to run, likely a Python config issue.
omnifunc=pythoncomplete#Complete
Last set from ~/.local/share/vim/vim82/ftplugin/python.vim line 44
completeopt=menuone,longest,preview
Last set from ~/.vim/bundle/jedi-vim/plugin/jedi.vim line 36
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jul 22 2021 13:02:25)
Included patches: 1-3201
Compiled by asathe@node045
Huge version with GTK2 GUI. Features included (+) or not (-):
+acl +clipboard +dnd +gettext +listcmds -mouse_sysmouse +postscript -sound +termresponse +vreplace
+arabic +cmdline_compl -ebcdic -hangul_input +localmap +mouse_urxvt +printer +spell +textobjects +wildignore
+autocmd +cmdline_hist +emacs_tags +iconv -lua +mouse_xterm +profile +startuptime +textprop +wildmenu
+autochdir +cmdline_info +eval +insert_expand +menu +multi_byte +python/dyn +statusline +timers +windows
-autoservername +comments +ex_extra +ipv6 +mksession +multi_lang +python3/dyn -sun_workshop +title +writebackup
-autoservername +comments +ex_extra +ipv6 +mksession +multi_lang +python3/dyn -sun_workshop +title +writebackup
+balloon_eval +conceal +extra_search +job +modify_fname -mzscheme +quickfix +syntax +toolbar +X11
+balloon_eval_term +cryptv -farsi +jumplist +mouse +netbeans_intg +reltime +tag_binary +user_commands -xfontset
+browse +cscope +file_in_path +keymap +mouseshape +num64 +rightleft -tag_old_static +vartabs +xim
++builtin_terms +cursorbind +find_in_path +lambda +mouse_dec +packages -ruby -tag_any_white +vertsplit +xpm
+byte_offset +cursorshape +float +langmap -mouse_gpm +path_extra +scrollbind -tcl +virtualedit +xsmp_interact
+channel +dialog_con_gui +folding +libcall -mouse_jsbterm -perl +signs +termguicolors +visual +xterm_clipboard
+cindent +diff -footer +linebreak +mouse_netterm +persistent_undo +smartindent +terminal +visualextra -xterm_save
+clientserver +digraphs +fork() +lispindent +mouse_sgr +popupwin -sodium +terminfo +viminfo
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
Issue
Jedi-vim knows python in my conda env, but not use it. Instead it just use the base conda environment. However it does use python in environment created by venv module.
Previously it worked OK for all env created with venv or conda, I'm currently on the latest version of jedi-vim.
Steps to reproduce
I create a new environment with
conda create -n pytorch python=3.7
and installed pytorch. Jedi knows about the environment but does not use it, so I can not autocomplete it with deoplete.Output of “:verbose JediDebugInfo”
Create env with
venv
If I create a new environment using
python -m venv myenv
, jedi recognize and use the environment: