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
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