Conda (on guix) does not activate environments

  • Done
  • quality assurance status badge
Details
3 participants
  • Frederick Muriithi
  • Maxim Cournoyer
  • Pjotr Prins
Owner
unassigned
Submitted by
Frederick Muriithi
Severity
normal
F
F
Frederick Muriithi wrote on 28 Jul 2017 07:49
(address . bug-guix@gnu.org)
CALjrZwatbyJ+8-GGXEBG8aGjfWMDY0MnNEiL2kKS6b2mFtc9Mg@mail.gmail.com
I have come across a bug on conda, installed via guix, that does not
seem to be present when conda is installed via the process at

The issue
---------
Conda (on guix) does not activate environments

Command ran
-----------
source activate test-env

Expected result
---------------
The envinment should be activated, and the prompt changes from
`frederick@localhost:/tmp$` to `(test-guix-conda)
frederick@localhost:/tmp$`

Actual result
-------------
The terminal window is exited.

Additional information
----------------------
This behaviour is not present on conda installed via the process
presented in the conda documentation.

The environment(s) created by conda on guix are available on, and can
be activated by conda installed via the process in the conda
documentation.

I ran `bash -c "source activate test-env"` and the following error
message was displayed:

/gnu/store/f2dr9xbimg93pljm7xgmqb4cm5bxy98r-conda-4.3.16/bin/.deactivate-real:
line 59: return: can only `return' from a function or sourced script
/gnu/store/f2dr9xbimg93pljm7xgmqb4cm5bxy98r-conda-4.3.16/bin/.deactivate-real:
line 94: return: can only `return' from a function or sourced script

I would appreciate any help that would help in resolving this issue.
P
P
Pjotr Prins wrote on 28 Jul 2017 11:36
(name . Frederick Muriithi)(address . fredmanglis@gmail.com)(address . 27858@debbugs.gnu.org)
20170728093642.GA10189@thebird.nl
Hi Fred,

Can you send the exact commands you are using so we can replicate the
issue?

Pj.

--
F
F
Frederick Muriithi wrote on 28 Jul 2017 11:42
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 27858@debbugs.gnu.org)
CALjrZwb16Cn1ygFYUhKDWdid1dYQabB6yB0p_eFu8YYf_00pOQ@mail.gmail.com
1) Install conda into a profile:

guix package --install=conda --profile=$HOME/guix_profiles/conda

2) Activate the profile:

source $HOME/guix_profiles/conda/etc/profile

3) Create an environment with conda and install biopython

conda create --name test-env biopython

4) Try to activate the environment (here's where it fails)

source activate test-env
F
F
Frederick Muriithi wrote on 28 Jul 2017 12:20
(name . Pjotr Prins)(address . pjotr.public12@thebird.nl)(address . 27858@debbugs.gnu.org)
CALjrZwYG2c0PT-e-nkR5B4x7gnJdwC6muK0nsROk-VCGEGozdg@mail.gmail.com
Additional Information

When installed from conda's documentation, conda installs the
following packages into conda's root environment by default:

asn1crypto, cffi, conda, conda-env, cryptography, idna, libffi,
openssl, packaging, pip, pycosat, pycparser, pyopenssl, pyparsing,
python, readline, requests, ruamel_yaml, setuptools, six, sqlite, tk,
wheel, xz, yaml, zlib


These do not exists in the root environment of the conda installed via guix.
M
M
Maxim Cournoyer wrote on 1 Feb 2021 20:37
(name . Frederick Muriithi)(address . fredmanglis@gmail.com)
87r1lzr34m.fsf@gmail.com
Hello,

Frederick Muriithi <fredmanglis@gmail.com> writes:

Toggle quote (16 lines)
> 1) Install conda into a profile:
>
> guix package --install=conda --profile=$HOME/guix_profiles/conda
>
> 2) Activate the profile:
>
> source $HOME/guix_profiles/conda/etc/profile
>
> 3) Create an environment with conda and install biopython
>
> conda create --name test-env biopython
>
> 4) Try to activate the environment (here's where it fails)
>
> source activate test-env

I had never used conda before, so I was a bit surprised that it sneeked
that into my ~/.bashrc:

Toggle diff (44 lines)
diff --git a/bash/.bashrc b/bash/.bashrc
index d0635bc..169b2c8 100644
--- a/bash/.bashrc
+++ b/bash/.bashrc
@@ -119,3 +119,19 @@ function up()
cd "$dir"
echo "info: now in $PWD [Git repo]"
}
+
+# >>> conda initialize >>>
+# !! Contents within this block are managed by 'conda init' !!
+__conda_setup="$('/gnu/store/pjkxdaryj97yffhjxql2q4wpzs70hpa3-conda-4.8.3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
+if [ $? -eq 0 ]; then
+ eval "$__conda_setup"
+else
+ if [ -f "/gnu/store/pjkxdaryj97yffhjxql2q4wpzs70hpa3-conda-4.8.3/etc/profile.d/conda.sh" ]; then
+ . "/gnu/store/pjkxdaryj97yffhjxql2q4wpzs70hpa3-conda-4.8.3/etc/profile.d/conda.sh"
+ else
+ export PATH="/gnu/store/pjkxdaryj97yffhjxql2q4wpzs70hpa3-conda-4.8.3/bin:$PATH"
+ fi
+fi
+unset __conda_setup
+# <<< conda initialize <<<
+

and required the presence of the 'sudo' command to be happy.

With that said,

$ guix environment --pure --ad-hoc conda bash coreutils sudo

(base) $ conda create --name test-env biopython

Then the suggested:

(base) $ conda activate test-env

(test-env) $

So, it seems to work.

Closing.

Maxim
Closed
?