[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to let tramp be aware the virtualenv?
From: |
Bruno Barbier |
Subject: |
Re: How to let tramp be aware the virtualenv? |
Date: |
Wed, 17 Jul 2019 23:02:07 +0200 |
Hi Zhongwei,
Zhongwei Yao <ashi08104@gmail.com> writes:
> Thanks. I try emacs27 and using connection-local-set-profiles. And I can
> run into bash in compile command. But running into bash is not my
> objective. (I try to add source my/python/virtualenv/bin/activate to
> bashrc, and it doesn't work. The bash run in non-interative shell and seems
> doesn't read my bashrc).
>
> I want to make the compilation under tramp know which python virtual env is
> activate. Currently, I have a workaround by using the following compile
> command:
> . /path/to/the/virtual/env/activate && python --version
>
> But it is in-convenient that each compile command needs a ". /xxx/activate"
> prefix. I don't know whether there is a way to make the compile command
> aware of which virtualenv is activate without using such prefix.
>
I'm using:
emacs 26.1
tramp 2.3.3.26.1
It's just working for me; so, I don't understand what I'm missing here
(sorry about the bash 'source' thing).
The only thing, that I did, is to configure SSH so that it gives a
proper shell to tramp.
Host nice-tramp
HostName xxx.xxx.xxx.xxx
RequestTTy force
RemoteCommand dash -c '. path/to/my-init.sh; dash -l'
As said by Michael, in another email in this thread, your problem is
probably not with tramp.
What do you get when connecting directly using SSH in a console ? (you
need to get a proper shell, with prompt/input/output/echo).
If I type:
ssh nice-tramp
I'm connected, getting a shell with a prompt (the thing that tramp needs
to work), and, that shell works like any console shell: input, echo,
prompt.
If I enter, in this shell the command:
type $0
I get:
dash is /bin/dash
(yes, I installed 'dash', just to double-check what I could be missing)
Once this is working, in Emacs, I do:
/ssh:nice-tramp:/whatever/path/
and Emacs/Tramp shows me the directory
In this directory, if I do 'M-x shell', I get a remote shell, on this
directory.
My init script contains:
export MY_VIRTUAL_ENV="Yes"
And, after 'M-x shell', entering: 'export | grep MY', I get:
declare -x MY_VIRTUAL_ENV="Yes"
(my 'sh' is 'bash', not using Ubuntu, that's tramp shell, and it's
fine for me)
If I enter, M-x compile "echo $MY_VIRTUAL_ENV", I'm getting a compilation
buffer with:
echo $MY_VIRTUAL_ENV
Yes
So only configuring SSH works for me. I'm not sure I understand what's
not working for you. Once Tramp gets a proper shell, it should just work
(it can be sh, bash, dash, etc.). Just provide a proper interactive
shell, and let tramp take it from there.
Any idea what test I can do to understand what I'm missing ?
Bruno
> On Wed, Jul 17, 2019 at 7:34 PM Michael Albinus <michael.albinus@gmx.de>
> wrote:
>
>> Zhongwei Yao <ashi08104@gmail.com> writes:
>>
>> > Hi, Michael,
>>
>> Hi,
>>
>> > I try to set the remote-shell to /bin/bash, and from tramp log, there
>> > is:
>> > xx8:15.682748 tramp-get-connection-property (7) # remote-shell
>> > /bin/bash
>>
>> Good.
>>
>> > And I notice there is log line like:
>> > 38:15.720661 tramp-send-command (6) # cd
>> > /home/user/projects/foo/build/ && exec <<'6xxa3a8f7393fxxx' env
>> > PS1\=/ssh\:remote_machine\:/home/user/projects/foo/build/\ \#\$\
>> > TERMCAP\= COLUMNS\=134 INSIDE_EMACS\=26.1\,compile /bin/sh
>> > (
>> > echo $BASH_VERSION
>> > ) </dev/tty
>> > 6xxa3a8f7393fxxx
>> >
>> > It is still using /bin/sh.
>>
>> This isn't any longer Tramp. *This* hard coded /bin/sh comes from the
>> compile command.
>>
>> Apparently, you're using Emacs 26. In Emacs 27, compile can be
>> configured to use connection local variables, which would overwrite
>> this.
>>
>> Do you have a chance to run the development version of Emacs?
>>
>> Best regards, Michael.
>>
- How to let tramp be aware the virtualenv?, Zhongwei Yao, 2019/07/16
- Re: How to let tramp be aware the virtualenv?, Michael Albinus, 2019/07/16
- Re: How to let tramp be aware the virtualenv?, Bruno Barbier, 2019/07/16
- Re: How to let tramp be aware the virtualenv?, Zhongwei Yao, 2019/07/16
- Re: How to let tramp be aware the virtualenv?, Michael Albinus, 2019/07/17
- Re: How to let tramp be aware the virtualenv?, Zhongwei Yao, 2019/07/17
- Re: How to let tramp be aware the virtualenv?, Michael Albinus, 2019/07/17
- Re: How to let tramp be aware the virtualenv?, Zhongwei Yao, 2019/07/17
- Re: How to let tramp be aware the virtualenv?, Michael Albinus, 2019/07/17
- Re: How to let tramp be aware the virtualenv?, Yuri Khan, 2019/07/17
- Re: How to let tramp be aware the virtualenv?,
Bruno Barbier <=
- Re: How to let tramp be aware the virtualenv?, Zhongwei Yao, 2019/07/18
- Re: How to let tramp be aware the virtualenv?, Bruno Barbier, 2019/07/18
- Re: How to let tramp be aware the virtualenv?, Zhongwei Yao, 2019/07/18