PATH y exec-path set, pero emacs no encuentra el ejecutable
dot-emacs (4)
Intente reemplazar la segunda línea con esto:
(setq exec-path (append exec-path ''("/usr/texbin" "/opt/local/bin")))
Mi .emacs contiene
(setenv "PATH" (concat ".:/usr/texbin:/opt/local/bin" (getenv "PATH")))
(setq exec-path (append exec-path ''(".:/usr/texbin:/opt/local/bin")))
(add-to-list ''load-path "/usr/local/share/emacs/site-lisp")
(require ''tex-site)
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
/ usr / texbin es donde latex / pdflatex / .. están ubicados. / opt / local / bin / es donde se puede encontrar gs.
Y sin embargo, cuando ejecuto preview-at-point, que aparentemente necesita tanto latex como gs, obtengo
Preview-DviPS finished at Thu Dec 22 11:25:46
DviPS sentinel: Searching for program: No such file or directory, gs
lo que significa que el látex podría encontrarse bien, pero no gs.
No estoy seguro de si es necesario establecer exec-path, quizás PATH es suficiente, pero lo he establecido como una medida de depuración.
¿Por qué emacs no puede encontrar gs a pesar de que el directorio en el que se encuentra está tanto en PATH como en exec-path?
Me tocó un problema similar, pero con una RUTA correcta, incluido el final '':''. Resultó que faltaba el programa interno shell de emacs, lo que dio como resultado un''earching for programme: No such such file or directory'' message. Reparado con
(setq shell-file-name "bash").
Parece que te falta un separador de ruta :
al final de tu cadena de ruta.
Si está configurando $PATH
dentro de su Emacs, es posible que esté en OS X. Las aplicaciones de GUI no se inician a través de su shell, por lo que ven diferentes variables de entorno.
Este es un truco que utilizo para asegurar que $PATH
dentro de Emacs sea el mismo que veo si enciendo un terminal ( pero vea la "actualización" a continuación ):
(defun set-exec-path-from-shell-PATH ()
"Set up Emacs'' `exec-path'' and PATH environment variable to match that used by the user''s shell.
This is particularly useful under Mac OSX, where GUI apps are not started from a shell."
(interactive)
(let ((path-from-shell (replace-regexp-in-string "[ /t/n]*$" "" (shell-command-to-string "$SHELL --login -i -c ''echo $PATH''"))))
(setenv "PATH" path-from-shell)
(setq exec-path (split-string path-from-shell path-separator))))
Luego simplemente llame a la función set-exec-path-from-shell-PATH
, tal vez desde su archivo de inicio de Emacs. Guardo ese código en github , BTW.
Actualización: este código ahora se ha mejorado y publicado como una biblioteca elisp llamada exec-path-from-shell ; paquetes installables están disponibles en MELPA .