Para practicar con Python, he instalado una máquina virtual con Alpine 3.9. En esta entrada recojo los diferentes pasos que he realizado para configurarla como entorno de ejecución de Python 3.
Habilitar usuario no root
Alpine arranca en modo live y mediante la ejecución del script setup-alpine
configuro e instalo la distrbución en el disco duro de la máquina virtual.
Tras la instalación de Alpine únicamente tengo el usuario root; es conveniente crear un usuario no-root para poder trabajar con los mínimos permisos posibles.
Para crear un usuario no-root uso adduser
adduser operador
Instalo sudo
y añado el usuario al fichero /etc/sudoers
:
apk add sudo
visudo
En el fichero he añadido la línea:
operador ALL=(ALL) ALL
Inicialmente he creado un fichero
/etc/sudoers.d/operador.usr
(con permisos0440
) pero al intentar elevar permisos recibía el mensajeuser is not in the sudoers file
, por lo que finalmente he dado permisos directamente en/etc/sudoers
.
Al disponer de un usuario no-root, ya puedo conectar remotamente vía SSH.
Instalación de Python
En Alpine (3.9) Python no está instalado por defecto (ni Python 2.7 ni 3.x).
Desde el 01/01/2020 Python 2.7 ha alcanzado la fecha final de soporte y no está mantenido oficialmente.
Instalo Python 3 mediante:
sudo apk update
sudo apk add python3
Compruebo la versión instalada mediante:
$ python3 --version
Python 3.6.9
Valido que también se ha instalado pip3
:
$ pip3 --version
pip 18.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)
Creación de entornos virtuales
El módulo venv
permite crear “entornos virtuales” autocontenidos en una carpeta. De esta forma podemos tener diferentes versiones de Python o de alguno de sus paquetes sin interferencias entre ellos.
Para crear un entorno virtual llamado pydev
:
python3 -m venv pydev
De forma general
python3 -m venv /ruta/a/la/carpeta/del/entorno/virtual
Este comando crea la carpeta pydev
y un fichero pyvenv.cfg
que contiene la ruta al intérprete de Python usado en el entorno virtual, la versión y otros parámetros de configuración:
home = /usr/bin
include-system-site-packages = false
version = 3.6.9
Una vez creado el entorno virtual, es necesario activarlo. Para ello se usa un script (la ubicación específica depende de la plataforma y shell que uses, ver la documentación oficial).
ASH, la shell que usa Alpine Linux no forma parte de la documentación de venv
, pero compruebo que el fichero activate
está en la ruta (venv)/bin/activate
. Como el comando source
no se reconoce en Alpine, uso la forma “general”, mediante un “.”:
$ . pydev/bin/activate
(pydev) pydev:~$
Observa que el prompt cambia para indicar te encuentras en el entorno virtual pydev
.