I recently started using emacs outside of the terminal which was causing me some PATH issues. I had tried setting it by adding (getenv "PATH") to my exec-path, among other things that ultimately never worked.
I ended up installing the exec-path-from-shell package via melpa. It works by using your $SHELL environment variable to ask your shell to print out your $PATH and copying the result.
Edit: Here's the code I use
;; I set this at the beginning of my init.el for other mac specific settings (defconst *is-a-mac* (eq system-type 'darwin)) ;; Later on, after loading exec-path-from-shell package (if *is-a-mac* (add-hook 'after-init-hook 'exec-path-from-shell-initialize))