Thanks, the problem is solved.

## Possible cause
Initially, I have emacs installed and ~/.guix-profile/etc/profile sourced.

but when I type "guix package -I | grep emacs". I don't see emacs package (strange).

So I reinstall emacs : guix install emacs. Then I can see 2 emacs-27.1 installation
```
$ which -a emacs
/home/dev_1/.guix-profile/bin/emacs
/home/dev_1/.guix-profile/bin/emacs
/run/current-system/profile/bin/emacs

$ ls -l /home/dev_1/.guix-profile/bin/emacs
lrwxrwxrwx 8 root root 64 Jan  1  1970 /home/dev_1/.guix-profile/bin/emacs -> /gnu/store/6mw831p6pccqwr3k3qanr6pmhcq0qym6-emacs-27.1/bin/emacs

$ ls -l /run/current-system/profile/bin/emacs
lrwxrwxrwx 2 root root 64 Jan  1  1970 /run/current-system/profile/bin/emacs -> /gnu/store/yy66pbp3h5mw5sv7hrl1778skapszq7k-emacs-27.1/bin/emacs
```

Now $EMACSLOADPATH contains 6 paths with "$GUIX_PROFILE/share/emacs/site-lisp" in it:
```
$ echo $EMACSLOADPATH
/home/dev_1/.guix-profile/share/emacs/site-lisp:/home/dev_1/.guix-profile/share/emacs/27.1/lisp:/home/dev_1/.guix-profile/share/emacs/site-lisp:/home/dev_1/.guix-profile/share/emacs/27.1/lisp:/run/current-system/profile/share/emacs/site-lisp:/run/current-system/profile/share/emacs/27.1/lisp
```
Before $EMACSLOADPATH contains only 2 paths without "$GUIX_PROFILE/share/emacs/site-lisp" in it.

I think my first emacs installation should has something break,so $EMACSLOADPATH isn't correctly set.

Thanks again

Le dim. 21 nov. 2021 à 04:25, Maxim Cournoyer <maxim.cournoyer@gmail.com> a écrit :
Hello,

bbb ee <blasforr@gmail.com> writes:

> ## Description of bug
> emacs can't load packages installed by guix because missing
> $GUIX_PROFILE/share/emacs/site-lisp
> in EMACSLOADPATH
>
> $GUIX_PROFILE/share/emacs/site-lisp isn't set in my
> $GUIX_PROFILE/etc/profile and not in my $EMACSLOADPATH
>
> ```
> $ echo $EMACSLOADPATH
> /run/current-system/profile/share/emacs/site-lisp:/run/current-system/profile/share/emacs/27.1/lisp
>
> $ less $GUIX_PROFILE/etc/profile
> export
> EMACSLOADPATH="${GUIX_PROFILE:-/gnu/store/vq5dzmbx202z9p5hjyxfzcdpyzapxgxg-profile}/share/emacs/site-lisp:${GUIX_PROFILE:-/gnu/store/vq5dzmbx202z9p5hjyxfzcdpyzapxgxg-profile}/share/emacs/27.1/lisp${EMACSLOADPATH:+:}$EMACSLOADPATH"
>
> ```

The EMACSLOADPATH environment variable is set when installing Emacs
itself; have you installed the 'emacs' package in your profile (guix
install emacs), then sourced your profile again
(. ~/.guix-profile/etc/profile), or alternatively started a new shell?

This works for me, for example:

--8<---------------cut here---------------start------------->8---
$ guix shell --container emacs emacs-magit -- emacs --batch --eval \
  '(begin (print (getenv "EMACSLOADPATH") (print (magit-version))'
Loading /gnu/store/hsj3kl0vc3hxiapklg5nj42z5jb4s80p-emacs-magit-3.3.0/share/emacs/site-lisp/magit-3.3.0/magit-autoloads...
[...]
"/gnu/store/zv9iqvv6jnnvf0cr0c8kan3dcgj8mybj-profile/share/emacs/site-lisp:/gnu/store/ybpddmq7f8ajzydhiqqx6dldgmadqanp-emacs-27.2/share/emacs/27.2/lisp"

"3.3.0"
--8<---------------cut here---------------end--------------->8---

HTH,

Maxim