Spaces:
Paused
Paused
File size: 2,564 Bytes
bc37cf8 9d0f13c bc37cf8 5701d87 e0e84a7 f297386 dd7318c 9d0f13c f297386 bc37cf8 f297386 dd7318c f297386 6664686 f297386 bc37cf8 f297386 bc37cf8 e0e84a7 bc37cf8 d2593dd bc37cf8 e0e84a7 bc37cf8 e0e84a7 bc37cf8 5701d87 bc37cf8 5701d87 e0e84a7 d2593dd e0e84a7 b96b843 e0e84a7 b96b843 bc37cf8 dd7318c bc37cf8 dd7318c 6664686 dd7318c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# Filename: /home/user/app/app.py
# Version: 1691068773 (Unix timestamp at creation moment)
import os
import subprocess
import psutil
# Definir el archivo de log antes de instalar las bibliotecas
log_file = "/home/user/app/app.log"
# Instalar las bibliotecas necesarias
def install_packages():
# Instalar los paquetes necesarios si a煤n no est谩n instalados
with open(log_file, "a") as f:
f.write("===== Installing Packages =====\n")
subprocess.run(['pip3', 'install', 'jupyterlab', 'flask', 'gradio'], check=True)
install_packages()
# Ahora importar las bibliotecas necesarias
from flask import Flask, redirect
import gradio as gr
from werkzeug.serving import WSGIRequestHandler
app = Flask(__name__)
def configure_jupyter():
# Generar la configuraci贸n de Jupyter
jupyter_config_dir = os.path.expanduser('~/.jupyter')
os.makedirs(jupyter_config_dir, exist_ok=True)
config_file = os.path.join(jupyter_config_dir, 'jupyter_lab_config.py')
jupyter_password = os.environ.get('JUPYPASS', '')
password_config = f"c.ServerApp.password = u'{jupyter_password}'" if jupyter_password else ''
with open(config_file, 'w') as f:
f.write(f"""
c.ServerApp.ip = '0.0.0.0'
c.ServerApp.port = 8898
c.ServerApp.open_browser = False
{password_config}
c.ServerApp.root_dir = '/home/user/app'
c.ServerApp.terminado_settings = {{'shell_command': ['bash']}}
c.ServerApp.allow_root = True
""")
def is_jupyter_running():
# Verificar si JupyterLab ya est谩 en ejecuci贸n
for process in psutil.process_iter(['pid', 'name']):
if 'jupyter-lab' in process.info['name']:
return True
return False
def start_jupyter():
# Iniciar JupyterLab en el puerto 8898 con autoreload si no est谩 en ejecuci贸n
if not is_jupyter_running():
with open(log_file, "a") as f:
subprocess.Popen(['jupyter-lab', '--port', '8898', '--autoreload'], stdout=f, stderr=f)
@app.route('/')
def home():
def greet(name):
return f"Hello {name}!"
with gr.Blocks() as demo:
gr.Interface(fn=greet, inputs="text", outputs="text")
return demo.launch(inline=True)
@app.route('/jupy')
def lab():
return redirect("http://localhost:8898", code=302)
if __name__ == "__main__":
with open(log_file, "a") as f:
f.write("===== Application Startup at {0} =====\n".format(subprocess.run(['date'], capture_output=True, text=True).stdout))
configure_jupyter()
start_jupyter()
app.run(host='0.0.0.0', port=7860, debug=False) |