1

I'm using the latest version of emacs, with and without a custom MacOS build (homebrew-emacs-plus). So, I'm trying to use spacemacs on MacOS, and I can't get it to pick up the $PATH on my host system. So when I try to run a command like M-x magit-status, I get the error message.

apply: Searching for program: No such file or directory, git

Spacemacs is using Steve Purcell's exec-path-from-shell. This SO question isn't quite solving it. And I've tried the below configuration (not using exec-path-from-shell), but no dice. I can get it working on my custom emacs configuration. But I’m trying to transition to spacemacs. And this is a blocker. Anyone know howto solve this?

(let ((path (shell-command-to-string ". ~/.bash_profile; echo -n $PATH")))
  (setenv "PATH" path)
  (setq exec-path 
        (append
         (split-string-and-unquote path ":")
         exec-path)))
Nutritioustim
  • 195
  • 1
  • 13

2 Answers2

2

Ok, solved this one. It turns out that there was an export PATH in my .bashrc (as well as .bash-profile). exec-path-from-shell doesn't like this, and only wants that export to happen in .bash-profile. This warning message gives a hint of the expectation. But I didn't realize that the package doesn't work if the condition isn't satisfied.

Hth

Warning (emacs): You appear to be setting environment variables ("PATH") in your .bashrc or .zshrc: those files are only read by interactive shells, so you should instead set environment variables in startup files like .bash_profile or .zshenv. Refer to your shell's man page for more info.

Nutritioustim
  • 195
  • 1
  • 13
0

I have no experience with Spacemacs, but if it's just magit you need to get working right now, you may want to try setting magit-git-executable to the full path (e.g., '/usr/local/bin/git' instead of 'git') as a workaround to getting your path set correctly.

Willy Lee
  • 460
  • 4
  • 10
  • Hey @willy-lee. I actually already have this working for my own hand-rolled emacs config. I'm trying to get the equivalent `exec-path-from-shell` (which is what spacemacs uses) functionality working. I tried this on both GNU Emacs 24.5.1 and 25.1.1, and running into this blocker for both versions. – Nutritioustim Feb 07 '17 at 05:51