[Top][All Lists]

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

Re: How can I replace Python venv and pip with Guix?

From: sirgazil
Subject: Re: How can I replace Python venv and pip with Guix?
Date: Tue, 04 Feb 2020 09:26:33 -0500
User-agent: Zoho Mail

 ---- On Tue, 04 Feb 2020 02:59:25 -0500 Tanguy Le Carrour <address@hidden> 
wrote ----
 > Hi,
 > Le 02/02, sirgazil a écrit :
 > > I'm currently using two package managers when working on my projects
 > > written in Python. I use Guix to install Python,
 > Depending on your OS, you can also use Pyenv [1][] to install what
 > ever version of Python you like. I haven't figured out how to package it
 > for Guix, though.
 > [1]:

I only mentioned Python here as something I install with the OS package 
manager, but I actually install other things that are not packaged for the 
language package manager. And I wanted to see if I can use Guix instead of 
several package managers.

 > > […]
 > > Emacs Elpy detects the virtual environments I create in this way, so I can
 > > activate and deactivate them from Emacs with an easy to use interface and
 > > have code completion that depends on the packages available in the active
 > > environment.
 > > 
 > > I'd like to use Guix and its environments to replace this functionality and
 > > to make my development environments easier to reproduce, but I don't
 > > understand how to that exactly.
 > > 
 > > So far I have tried the "guix environment" command as follows, trying to
 > > create a persistent environment I can activate/deactivate whenever I want:
 > > 
 > > $ guix environment --pure --manifest=guix.scm 
 > > --root=/path/to/my-guix-envs/my-project
 > If you want to create a persistent environment, you should use a profile,
 > not the `environment` command.
 > There's a good cookbook entry for that [2][].
 > [2]: 

I don't know how I missed this information. I'll take a look, thanks :)

 > > After running that command, I can see the prompt adds a "[env]" label
 > > indicating that I'm in the environment, and I can use the packages 
 > > specified
 > > in the manifest file. But
 > > 
 > > • How could one make the prompt add "[my-project]" instead of the generic
 > >   "[env]"?
 > I would say this depends on the shell you are using. If you are a Bash
 > user, you have to set the PS1 variable. If you use Fish [3][], you have to 
 > set your
 > prompt in a config file: `~/.config/fish/functions/`
 > and/or `~/.config/fish/functions/`.

Sorry, what I wanted to say is that I would expect that label to change 
automatically to "[my-project]" when I use the "--root" option.

 > > • Once I deactivate this environment (Ctrl+D), how can I activate it again?
 > I personally use Direnv [4][] to manage this. Whenever I `cd` to a
 > project folder, it creates and/or activates the venv and deactivates it
 > when you `cd` out of it.
 > [4]:
 > Using poetry + pyenv + direnv might be a bit confusing at first, but it's
 > really worth a try!

I will give all that a try if Guix doesn't satisfy my needs.

Thanks, Tanguy :)

reply via email to

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