This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

Manejar entornos virtuales (venv) de Python con pyenv

  • 1 Replies
  • 1217 Views

0 Members and 2 Guests are viewing this topic.

Offline AnakinSolo23

  • *
  • Underc0der
  • Posts: 5
  • Actividad:
    0%
  • Country: 00
  • Reputación 0
  • PythonDEV
    • View Profile
    • Email
Este es un centro para los devs que trabajan con alguna distro linux o mac.

Cuando empecé a desarrollar con Python me pasó que tuve que rabiar mucho con las versiones. En la mayoría de las distros de Linux (creo) viene por defecto python instalado, pero esa versión no era la que necesitaba para el proyecto que me habían asignado y tuve que batallar mucho para instalar otra versión y batallar un poco mas para poder usarla en el proyecto (un poco por ser noob en Python y otro poco porque en mi trabajo -de aquel entonces- los devs no eran muy "linux friendly"  ;D ), por lo que si hubiera conocido esta herramienta en ese momento, hubiera sido un poco distinto todo y no hubiera tenido que terminar pasando a Windows (solo para ese trabajo) como el resto del rebaño jaja..

La solución: pyenv
repo: You are not allowed to view links. Register or Login
Instalar pyenv es relativamente sencillo, basta con ejecutar unos comandos en la terminal (cabe aclarar, solo está disponible para Linux y Mac al momento de escribir este post, y esta guía está simplificada para LinuxMint y Ubuntu -con bash-, la documentación completa en el link del repo)

Pre-requisitos:
Code: You are not allowed to view links. Register or Login
$ sudo apt-get update
$ sudo apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
En LinuxMint 20.3 este paso me lo he salteado y no he tenido problemas.

Instalación
Abrir una terminal y ejecutar:

1. Clonar el repo
Code: You are not allowed to view links. Register or Login
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

2. Configurar el shell para Pyenv

Code: You are not allowed to view links. Register or Login
$ sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/.pyenv"
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' ~/.profile

$ echo 'eval "$(pyenv init --path)"' >>~/.profile

$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

3. Cerrar sesión y relogear (o reiniciar la PC directamente)
Listo, con esto ya tenemos instalado Pyenv, y lo podemos comprobar ejecutando lo siguiente en una terminal:
Code: You are not allowed to view links. Register or Login
pyenv -v #-> pyenv 2.1.0-24-ga0cc289d
4. Opcional pero recomendado, plugin virtualenv
repo: You are not allowed to view links. Register or Login
4.1. Clonar repo
Code: You are not allowed to view links. Register or Login
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv4.2. Habilitar auto-activacion de virtualenvs
Code: You are not allowed to view links. Register or Login
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc4.3. Reiniciar la shell
Code: You are not allowed to view links. Register or Login
$ exec "$SHELL"

Uso
Algunos comando básicos para usar desde la consola:
  • Listar versiones disponibles para instalar
Code: You are not allowed to view links. Register or Login
$ pyenv install -l
  • Instalar una version
Code: You are not allowed to view links. Register or Login
$ pyenv install 3.10.0
  • Settear una version como global
Code: You are not allowed to view links. Register or Login
$ pyenv global 3.10.0
  • Settear una version como local (a la carpeta actual)
Code: You are not allowed to view links. Register or Login
$ pyenv local 3.10.0Esto crea un archivo .python-version
recomendación 1, si estas trabajando en un proyecto, agregar este archivo al .gitignore
recomendación 2, en lo posible settear como local un virtualenv

  • Crear un virtual env
Code: You are not allowed to view links. Register or Login
# En general
$ pyenv virtualenv <python_version> <venv_name>
# Ejemplo
$ pyenv virtualenv 3.10.1 my_project

    Creo que con estos comandos estas listo para trabajar más cómodo con Python desde Linux o Mac, recuerda que siempre es conveniente que cada proyecto tenga su propio virtualenv y que allí se instalen sus dependencias.

    Offline pyfix

    • *
    • Underc0der
    • Posts: 1
    • Actividad:
      0%
    • Reputación 0
      • View Profile
    Muy buen tutorial, hace un tiempo me daba en la cabeza con el tema de entornos virtuales, asi que empece a trabajar con anaconda y sus entornos virtuales que resultan mas sencillos.
    salu2