help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: emacs doesn't inherit PATH from environment


From: Larry Evans
Subject: Re: emacs doesn't inherit PATH from environment
Date: Tue, 13 Feb 2018 17:57:17 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

On 02/13/2018 01:12 PM, Emanuel Berg wrote:
Larry Evans wrote:

When executing a Makefile or invoking eshell,
the PATH is not the same as when running from
a terminal window. Even when I modify the
PATH in the emacs initialization code in
~/emacs.d/init.common.el, the executables in
the PATH are *not* found.

Where and how do you set PATH?

Shell stuff that I want available from Emacs
I have to set in a special file for zsh, which
is

     ~/.zshenv

If I put the same thing in plain .zshrc or
a file loaded from there, it doesn't work!

I never understood why because the Emacs
instance is run from a zsh shell, but for some
reason Emacs cannot see zsh stuff that aren't
defined in that special file, even when (as
said) executed from a point which HAS access to
it all!

My experience with this has only been
*functions*, not environmentals, but it is
worth a shot.

Also, you can use this to check the value prior
to starting the shell and Makefile compilation
session:

     (getenv "PATH")

Is it correct?

Thanks for your feedback, Emanuel.

Yes, PATH is correct; however, I did use a different method to show its value:

Here's my Makefile:

--{--cut here--
which:
        echo "PATH=$(PATH)"
        ls -ld /home/evansl/anaconda3/bin/pdf2txt.py
        which pdf2txt.py
--}--cut here--
and heres the make invocation from within emacs:
--{--cut here--
-*- mode: compilation; default-directory: "~/prog_dev/python/pdfminer/pdfminer/" -*-
Compilation started at Tue Feb 13 17:47:05

echo $PATH ; make -k which
/home/evansl/anaconda3/bin;/home/evansl/miniconda3/bin;/home/evansl/dwnlds/depot_tools/depot_tools:/home/evansl/dwnlds/gsrc.top/install/bin:/home/evansl/bin:/opt/OpenPrinting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
echo "PATH=/home/evansl/anaconda3/bin;/home/evansl/miniconda3/bin;/home/evansl/dwnlds/depot_tools/depot_tools:/home/evansl/dwnlds/gsrc.top/install/bin:/home/evansl/bin:/opt/OpenPrinting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
PATH=/home/evansl/anaconda3/bin;/home/evansl/miniconda3/bin;/home/evansl/dwnlds/depot_tools/depot_tools:/home/evansl/dwnlds/gsrc.top/install/bin:/home/evansl/bin:/opt/OpenPrinting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ls -ld /home/evansl/anaconda3/bin/pdf2txt.py
-rwxrwxr-x 1 evansl evansl 3436 Feb 12 06:18 /home/evansl/anaconda3/bin/pdf2txt.py
which pdf2txt.py
Makefile:29: recipe for target 'which' failed
make: *** [which] Error 1

Compilation exited abnormally with code 2 at Tue Feb 13 17:47:05
--}--cut here--
and before doing all that, I created a ~/.bashenv using the
name pattern you gave in your post (~/.$(SHELL)env):

--{--cut here--
evansl@lje-OptiPlex-9020:~$ pwd
/home/evansl
evansl@lje-OptiPlex-9020:~$ cat .bashenv
#let emacs know the environment
. .bashrc
evansl@lje-OptiPlex-9020:~$ tail .bashrc
fi

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

# added by Miniconda3 installer
export PATH="/home/evansl/miniconda3/bin:$PATH"

# added by Anaconda3 installer
export PATH="/home/evansl/anaconda3/bin:$PATH"
evansl@lje-OptiPlex-9020:~$
--}--cut here--

So, I still can't figure how to get emacs to find pdf2txt.py in
home/evansl/anaconda3/bin/ by setting PATH somehow.

-regards,
Larry




reply via email to

[Prev in Thread] Current Thread [Next in Thread]