help-guix
[Top][All Lists]
Advanced

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

How can I replace Python venv and pip with Guix?


From: sirgazil
Subject: How can I replace Python venv and pip with Guix?
Date: Sun, 02 Feb 2020 18:00:33 -0500
User-agent: Zoho Mail

Hi,

I'm currently using two package managers when working on my projects written in 
Python. I use Guix to install Python, and Python pip to install Python packages 
in project environments created with Python venv. So, for working on a specific 
project, I do the following:


#+BEGIN_EXAMPLE
# Create an environment (one-time operation)
$ python3 -m venv ~/.virtualenvs/my-project

# Activate the environment
$ source ~/.virtualenvs/my-project/bin/activate
(my-project) $

# Install packages in the environment
(my-project) $ pip install -r packages.txt

# Deactivate the environment (Ctrl+D)
$ deactivate
#+END_EXAMPLE


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:

#+BEGIN_EXAMPLE
$ guix environment --pure --manifest=guix.scm 
--root=/path/to/my-guix-envs/my-project
#+END_EXAMPLE

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]"?
• Once I deactivate this environment (Ctrl+D), how can I activate it again?


Thanks,



---
https://sirgazil.bitbucket.io/






reply via email to

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