pyenv-virtualenv icon indicating copy to clipboard operation
pyenv-virtualenv copied to clipboard

Conda 4.4.4 breaks pyenv virtual environments

Open melentye opened this issue 7 years ago • 9 comments

How to reproduce

  • pyenv install miniconda3-latest (the result is actually the same with miniconda3-4.3.3 since conda gets updated to 4.4.4 during the install)
  • pyenv virtualenv miniconda3-latest my-env

After performing the above steps, pyenv which conda doesn't list my-env as one of the environments that have the executable, it's missing in ~/.pyenv/versions/miniconda3-latest/envs/my-env/bin/ and upon the environment's activation with pyenv activate my-env, conda command is not available.

Workaround

After installing miniconda3-latest, downgrade conda to 4.3.30:

  • pyenv activate miniconda3-latest
  • conda install conda=4.3.30
  • re-create the affected virtual environments

Just speculating here, but the issue may be caused by https://www.anaconda.com/blog/developer-blog/how-to-get-ready-for-the-release-of-conda-4-4/ in Conda 4.4.4, for example the name of the default environment has been changed from "root" to "base".

melentye avatar Dec 29 '17 08:12 melentye

Thank you for the temporary workaround. I ran into this issue earlier today when upgrading my miniconda versions.

ohlookemus avatar Jan 05 '18 18:01 ohlookemus

More reports for this issue are also present in #178

willprice avatar Jan 09 '18 09:01 willprice

I have the same problem here.

gzagatti avatar Jan 30 '18 21:01 gzagatti

#290 was recently merged. Does the issue persist?

lmmarsano avatar Nov 23 '18 17:11 lmmarsano

I can now access the conda environment through pyenv activate myenv, but pyenv which conda points to the root conda version rather than the conda environment's bin directory.

clbarnes avatar Nov 23 '18 23:11 clbarnes

but pyenv which conda points to the root conda version rather than the conda environment's bin directory

I think the root conda executable serves all environments now. In my tests with the latest conda release and pyenv removed, conda create -n test doesn't even create a bin directory, so that appears to be the new design.

Do your conda environments work with pyenv? Can you

  • pyenv versions
  • pyenv virtualenvs
  • pyenv local version
  • pyenv virtualenv root-conda new-version
  • pyenv virtualenv-delete version

with conda environments?

lmmarsano avatar Nov 24 '18 04:11 lmmarsano

Just checked: all of those work. It just surprised me that the conda binary in the root environment would install packages in my activated environment rather than the root one.

clbarnes avatar Nov 24 '18 19:11 clbarnes

Can we close this? At some point along the line I just got used to the conda tool not being available from virtualenvs of my miniconda install and it wasn't that big a deal. I just do something like:

pyenv shell miniconda3-latest
conda install -n my_env foo==3.3
pyenv shell --unset

jimmywan avatar Jun 30 '21 18:06 jimmywan

At some point along the line I just got used to the conda tool not being available from virtualenvs of my miniconda install and it wasn't that big a deal. I just do something like:

If conda is available after you do regular conda activate, this is something worth fixing

native-api avatar Apr 14 '24 23:04 native-api