From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Zhongwei Yao Newsgroups: gmane.emacs.help Subject: Re: How to let tramp be aware the virtualenv? Date: Fri, 19 Jul 2019 09:04:03 +0800 Message-ID: References: <5d2e15b2.1c69fb81.02bd.de51@mx.google.com> <87zhldur3a.fsf@gmx.de> <87pnm8vqry.fsf@gmx.de> <5d2f7e72.1c69fb81.f72ba.b0dd@mx.google.com> <5d30a1f2.1c69fb81.c4190.1ece@mx.google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="76106"; mail-complaints-to="usenet@blaine.gmane.org" Cc: help-gnu-emacs@gnu.org, Michael Albinus To: Bruno Barbier Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Jul 19 03:04:24 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hoHJw-000Jgb-0R for geh-help-gnu-emacs@m.gmane.org; Fri, 19 Jul 2019 03:04:24 +0200 Original-Received: from localhost ([::1]:41702 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hoHJu-0004tm-SJ for geh-help-gnu-emacs@m.gmane.org; Thu, 18 Jul 2019 21:04:22 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45191) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hoHJq-0004tf-I4 for help-gnu-emacs@gnu.org; Thu, 18 Jul 2019 21:04:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hoHJo-0002yk-SV for help-gnu-emacs@gnu.org; Thu, 18 Jul 2019 21:04:18 -0400 Original-Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]:34636) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hoHJo-0002y2-J0 for help-gnu-emacs@gnu.org; Thu, 18 Jul 2019 21:04:16 -0400 Original-Received: by mail-ed1-x536.google.com with SMTP id s49so32878805edb.1 for ; Thu, 18 Jul 2019 18:04:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=w4MnZMNlC7UUWLxStoM8nrH/j4M+AJ5Gk6vHc0TNpaA=; b=Dqic5esmQMKyqUVO8dv0ObXmtnIopIH2kIuXz6NTM1f6OXAgfXqJ0EPiQ25OGVWLJQ HyRiBh1UxTXlX6Ivpq+bDaR9uLhGHY/8MtCbUUDytlGAq1xeQ7YuYpMgBhZaaprlPdg+ ahCPD4UWFN7P1sYiU4Wca/IbGxFDVRnQDS/zvBoY4O4YyRdy6v0pqoUSxw9XHQJoJcbF Gc0WkJgNP1lCNderTFNgbtgxnD8fYqXnZRm4e08qGBgwW6TWJWM0vpO6Uvq0di6xxrLT iiVll4rHm2Xn7UeA5kysczkEexsYqCHF855vsUz61e4wX2oRgeWbhuRwgvV+PCjIZNsH 5r4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=w4MnZMNlC7UUWLxStoM8nrH/j4M+AJ5Gk6vHc0TNpaA=; b=rUWM0XF08rv4sFN6cA6izYHd59l4XPXt7qbdpEoZWCSZBmfBfWc7cYGcIRPxDeI+hf s2UDqTbDqpynq9DnIZFxexuqA4EahoGjdb8WIyeh89fCYnmTW3M3o26Jyg9TqmcjKkM6 AZvhvMwX4tBu6pM7ZSiCmHg3yl3w8/gTgIMbq8401l7+wbkBdpJV1dnirwdqLnxN+bPO D9iiyRI/mulaFvlefqDDMaJhQh0tIL7vx63fjR8ELkTi6jVjBkbiVuuVvtoc5sD3/A4I Yz0vrXNflPaYUrYANh58LUlq6a5XY666FkFCRLPfVxG7WTxkRytPdAEUDLP+l5Ma3af7 1jmw== X-Gm-Message-State: APjAAAW3lpAQDQ17aLQ4Hpoa4OYHEUuFHxftjfj3KMPYAQM1LnhRhQeq Sn+JzP3/fm4yuXFARSOfAowjJolPMzblJSV4m0U= X-Google-Smtp-Source: APXvYqwxcFTOFlzYCuMcPQ3aRgQYKIIhdnFf2MFbwN1RdMCxqQTHl9TikyxuC6wnPHUqAxamePSen6NR4DVZYWF7iro= X-Received: by 2002:a50:b962:: with SMTP id m89mr44319833ede.104.1563498254876; Thu, 18 Jul 2019 18:04:14 -0700 (PDT) In-Reply-To: <5d30a1f2.1c69fb81.c4190.1ece@mx.google.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::536 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:121202 Archived-At: Hi, Bruno, Customizing the tramp-remote-path works for me. Thanks! On Fri, Jul 19, 2019 at 12:44 AM Bruno Barbier wrote: > > Hi Zhongwei, > > Zhongwei Yao writes: > > > ... > > > Emacs reset the PATH at somewhere and it leads to can't find the python > in > > the virtual-env! > > > > ... > > > > I have not found where emacs sets (reset) the PATH yet. > > > Indeed, same here. > > Look at: > > (customize-variable 'tramp-remote-path) > > If you add the symbol tramp-own-remote-path to the list, tramp will also > add your existing remote PATH, when redefining the PATH. It's working > for me. Try with a real existing path, as tramp might remove > non-existing useless paths. > > Bruno > > > > > > > On Thu, Jul 18, 2019 at 4:00 AM Bruno Barbier > wrote: > > > >> > >> Hi Zhongwei, > >> > >> Zhongwei Yao 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 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 > >> >> > ) >> >> > 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. > >> >> > >> >