Para poder interactuar con algunas APIs que usan Python como yfinance tendrás que crearte tu entorno de Python en tu servidore web. En este artículo voy a detallar los pasos para instalar Python, crear un entorno virtual y hacer una primera
El primer paso es instalar el software necesario:
# sudo apt-get update# sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
# sudo apt-get install -yq git supervisor python python3-pip python3-distutils
# sudo pip install --upgrade pip venv# sudo pip install yfinance
El siguiente paso es crear un Entorno Virtual sobre el que empezar a trabajar.
# mkdir entornos# cd entornos
# python3 -m venv mi_entorno
# source mi_entorno/bin/activate
(mi_entorno) usuario@instance-1:~/entornos$ nano hola.py
print("Hola Mundo!")
Y cierra nano apretando Ctrl+X y guardando el contenido. Despues podrás ejecutar el programa:
(mi_entorno) usuario@instance-1:~/entornos$ python hola.py
(mi_entorno) usuario@instance-1:~/entornos$ pip install flask
(mi_entorno) usuario@instance-1:~/entornos$ nano api.py
from flask import Flask, jsonifyimport yfinance as yfapp = Flask(__name__)def obtener_precio(ticker):try:bbva = yf.Ticker(ticker)info = bbva.infoprecio_actual = info.get('regularMarketPrice')if precio_actual is None:precio_actual = info.get('previousClose')if precio_actual is None:return {"precio": "Precio no disponible"}else:return {"precio": precio_actual, "tipo": "Precio de cierre anterior"}return {"precio": precio_actual, "tipo": "Precio actual"}except Exception as e:print(f"Error al obtener datos: {e}")return {"error": "Error al obtener el precio"}@app.route('/precio')def obtener_precio_ruta():precio = obtener_precio("GOOG")return jsonify(precio) # Devuelve un JSONif __name__ == '__main__':app.run(debug=True)
Con el código guardado, procedemos a ponerlo en marcha llamando al fichero:
(mi_entorno) usuario@instance-1:~/entornos$ python api.py
# curl http://127.0.0.1:5000/precio
En los siguiente artículos modificaremos la API para que pueda recibir el ticker como argumento, publicaremos la api como un servicio web de producción y crearemos una página web que pueda utilizar esta API.
Enlaces:
https://www.digitalocean.com/community/tutorials/how-to-make-a-web-application-using-flask-in-python-3
https://flask.palletsprojects.com/en/stable/
https://cloud.google.com/python/docs/setup?hl=es-419#linux_1