En la entrada de hoy aprenderemos a instalar módulos python con pip3 sin internet, algo muy útil en entornos donde no dispongáis de conectividad con el exterior y sin embargo os pidan instalar ciertos paquetes/librerías de python. Este proceso lo vamos a hacer en una maquina Linux con Sistema Operativo Red Hat.
Si habéis llegado hasta este punto sabréis de sobra que las librerías de python las podemos instalar con el comando pip o pip3 (python3) pero claro, necesitamos internet para que pueda conectarse a los repositorios y poder descargarlas.
Si os encontráis en un entorno cerrado, de producción que este aislado y por tanto que no disponga de conectividad al exterior esta guía os resultara bastante útil.
En resumen, lo que haremos será lo siguiente:
- Crear una máquina virtual exacta a la que queremos instalar con pip3 sin internet (misma version de SO, python, pip, etc)
- Instalar los modulos en esta máquina
- Descargar el fichero .whl
- Exportarlo a la máquina sin conectividad e instalar
Tabla de Contenidos
Crear máquina virtual exacta
Vamos a partir de una máquina virtual creada con Virtual Box y las siguientes caracteristicas:
- Red Hat 8.6
- Version de python: 3.8.17
- Version de pip3: 19.3.1
Esta máquina tiene que ser identica a la que vamos a instalar las librerias de python.
Instalar modulo
En este ejemplo vamos a instalar el modulo pyautogui pero podemos instalar cualquier otro.
pip3 install pyautogui
Podemos ver las librerías instaladas con el siguiente comando:
yum list --installed | grep python3*
Descargar fichero .whl
Crearemos un directorio en la ubicación que queramos para descargar el fichero .whl que utilizaremos para instalar en la otra máquina y ejecutaremos el siguiente comando:
pip3 download pyautogui
Utilizaremos este comando cambiando el nombre del modulo por el que queramos.
Si entramos a la carpeta veremos todas las dependencias necesarias para instalarse y el fichero .whl:
Exportar a la máquina e instalar
Comprimiremos la carpeta creada anteriormente con todos los los ficheros y la copiamos y descomprimimos en la máquina destino.
Después ejecutaremos el siguiente comando:
pip3 install --no-index --find-links '.' pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Como os decía anteriormente cambiaremos el nombre del archivo .whl por el que nos hayamos descargado.
Una vez instalado nos tiene que mostrar lo siguiente:
Repetiremos estos mismos pasos tantas veces como módulos queramos instalar. De esta manera podremos instalar modulos python con pip3 sin internet de una forma bastante fácil.