[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/