Groups | Search | Server Info | Login | Register


Groups > gnu.emacs.help > #61046

Re: Eshell and Python venv

From Rust Buckett <rsstinnett@pm.me>
Newsgroups gnu.emacs.help
Subject Re: Eshell and Python venv
Date 2026-01-11 07:05 -0500
Organization A noiseless patient Spider
Message-ID <87a4ykmk11.fsf@pm.me> (permalink)
References <87ecnwn6h4.fsf@pm.me> <87ms2kid4p.fsf@ledu-giraud.fr>

Show all headers | View raw


Manuel Giraud <manuel@ledu-giraud.fr> writes:

> Rust Buckett <rsstinnett@pm.me> writes:
>
>> Is there a way to activate a Python virtual environment in Eshell?  When
>> I try `source ./.venv/bin/activate`, I get "Wrong type argument: listp,
>> "["".  Obviously, this is because `source` is built into the shell
>> (bash, csh, fish, eshell, etc.) and the default activate is for bash.
>> So, I guess the real question is if there is already a script to
>> activate the venv in eshell?  Or some other way to do it?
>
> If you read "./.venv/bin/activate", you'll see that what it do mostly is
> setting VIRTUAL_ENV to "./venv" and add "$VIRTUAL_ENV/bin" to your PATH
> to access the "correct" python.
>
> So doing the following should work:
>    export VIRTUAL_ENV="/absolute/path/to/venv"
>    export PATH="$VIRTUAL_ENV/bin":$PATH
>
> But maybe you could come up with an elisp function to more easily
> activate (and deactivate) those.

I realized that since you can evaluate elisp functions in eshell as you
would commands, I'm able to run `pyvenv-activate .venv` right in the
shell.  This /almost/ works. `exec-path` shows the correct path and
`getenv "PATH"` shows the change, but `echo $PATH` does not.  Guess
which one eshell uses.

If I run `pyvenv-activate .venv` then exit eshell and start it again,
everything works.  It's not as elegant as I would like, but I guess it
will have to do.

-- 
this is my clever sig.

Back to gnu.emacs.help | Previous | NextPrevious in thread | Find similar


Thread

Eshell and Python venv Rust Buckett <rsstinnett@pm.me> - 2026-01-10 23:00 -0500
  Re: Eshell and Python venv Manuel Giraud <manuel@ledu-giraud.fr> - 2026-01-11 12:48 +0100
    Re: Eshell and Python venv Rust Buckett <rsstinnett@pm.me> - 2026-01-11 07:05 -0500

csiph-web