Hola a tod@s
Este post lo dedicaré a cómo saber ejecutar, listar y detener python en nuestro Synology, ya que lo veo muy útil y es posible que le venga bien a más de uno y yo me uno a esa lista ; )

Para instalar python en Synology, lo primero es instalarlo, lo podremos encontrar en «Centro de paquetes»:

Instalamos los paquetes

Preparar Python:

Una vez instalado el paquete, para empezar a usar Python, lo mejor es crear una entorno virtual.
Ya tenemos un post donde se habla de entornos virtuales (pincha aquí).

¿Por qué digo lo de crear entornos virtuales? Comento 2 razones:

– La incompatibilidad, puede que distintas versiones de algunas librerías no se lleven muy bien y cuando tienes varios proyectos, puede que sea un dolor de cabeza, por eso que si lo previenes ya mucho mejor.
– La memoria en raiz, esto es algo que puede ser un problema tb a largo plazo. Algunas de las librerías que instalemos pueden ser pesadas y si lo haces desde raiz, usas la memoria del synology, esto lo aprendí por experience directa 🙂 Así que si usas el típico volume1 por ejemplo, ahi hay mucho más espacio.

Una de las mejores prácticas es dejar la carpeta del entorno virtual en cada carpeta de proyecto y claro está añadirlo al .gitignore porque esto no hace falta subirlo y tenerlo en la misma ruta hace más cómodo activarlo.

Pasos para empezar a usar python en synology:

  1. Activar acceso vía SSH desde Panel de control – Terminal y SNMP y en la pestaña de terminal, el check de Habilitar servicio SSH pudiendo elegir el puerto, el que viene por defecto es el 22.
  2. Conectar via ssh a nuestro synology: (desde CMD o terminal)
    ssh usuario@ip.del.synology -p 2202 (o puerto que tengas)
    # -p 2202 -> no hace falta si es el 22 que es el que va por defecto.
  3. Iremos a la carpeta deseada y creamos el entorno:
    python3 -m venv menv
    # python3 -m venv (esto activa el entorno) y menv (nombre de la carpeta donde se alojará el entorno).
  4. Activando el entorno:
    source menv/bin/activate
  5. Y ya tenemos nuestro entorno creado! ahora ya podemos instalar librerías o el requirements.
    Para ver las librerías actuales: pip list
    Para instalar nuevas:
    pip install requests
    pip install -r requirements.txt

¿Y si queremos igualmente usar el python de raíz?

Pues lo primero será instalar «pip» mediante SSH:

  • Instalar pip:
    sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    Y luego:
    sudo python3 get-pip.py
  • Y ahora ya podemos instalar pip (la librería) que necesitamos:
    sudo python3 -m pip install "nombre pip"

Ejecutar Python:
Para ejecutar python, lo podemos hacer mediante SSH y con el «Programador de tareas» y el comando para ejecutar el archivo py:

–Dentro de la carpeta correspondiente y una vez activado el entorno virtual:
python3 -u NombreArchivo.py

–Desde cualquier sitio:
v/ruta/de/carpetas/menv/bin/python /ruta/de/carpetas/NombreArchivo.py

— Si queremos ejecutarlo cada vez que inicie synology, podemos hacerlo en el «Programador de tareas», (dejo el link para ver ejemplo en el otro post) creando un script de inicio desde «tareas activas» y «Script definido por usuario», donde el comando será ejecutar su inicio.

— Ejecutar en segundo plano aunque cerremos la terminal:

nohup /volume1/proyectos/menv/bin/python -u /volume1/proyectos/mi_script.py > output.log 2>&1 &

Resumen rápido:

  • -u → Salida sin búfer (logs en tiempo real).
  • & → Ejecuta el script en segundo plano.
  • nohup → Ejecuta en segundo plano y mantiene el proceso activo incluso si cierras la sesión.

Listar y detener Python:
Está ejecutado ¿Y ahora?, no veo nada… ¿Cómo se si está en marcha?, ¿Cómo lo paro?

–Listar ejecuciones:
ps -fA | grep python
*Y nos aparecerá la info de lo ejecutado, como por ejemplo:
00:00:03 python3 -u /volume1/rutaCarpetas/NombreArchivo.py

–Detener script Python:
pkill -f NombreArchivo.py
*Si es algún script de Python que encendéis y apagáis vosotros mismos, podéis usar el «Programador de tareas» creando un script de apagado, con este comando que hemos visto y así hacerlo con un par de clics desde el Synology sin tener que entrar por SSH.

Más comandos:

  • pip install –upgrade pip –> Para actualizar pip
  • pip list –> lista de instalados
  • pip -V –> para ver la versión

*Si usamos el Python de raíz, para usar los comando pondremos «sudo python3 -m » delante de los comandos.


Espero que os sirva de ayuda.

Un saludo.

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *