es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eres un traductor de español que traduce documentos de tecnología de la información. Traduce lo siguiente al español. Renderiza utilizando un script de Blender en Google Colab.

Estoy intentando ejecutar un script en Blender, utilizando la GPU disponible de Google Colab Pro.

Utilizo el siguiente código para instalar y configurar Blender:

import os
os.environ[“LD_PRELOAD”] = “”

!apt remove libtcmalloc-minimal4
!apt install libtcmalloc-minimal4

os.environ[“LD_PRELOAD”] = “/usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.3.0”

!wget https://download.blender.org/release/Blender2.93/blender-2.93.0-linux-x64.tar.xz
!tar -xf blender-2.93.0-linux-x64.tar.xz

si aún obtienes errores relacionados con LD_PRELOAD, puedes verificar si se aplica una buena ruta (si la versión de la biblioteca no ha cambiado)

!dpkg -L libtcmalloc-minimal4

!ln -s /content/blender-2.93.0-stable+blender-v293-release.84da05a8b806-linux.x86_64-release/blender /usr/local/bin/blender
!blender -v

Después de eso, ejecuto mi script de la siguiente manera:

!blender -b -noaudio –python /content/code/generate_images.py -E CYCLES -a –cycles-device CUDA

Pero da el siguiente error:

No se puede abrir una pantalla

El script generate_images.py contiene una serie de operaciones (se crean una cámara y una luz, y la cámara se mueve a lo largo de una trayectoria de posiciones predefinidas), y en cada posición de la cámara se renderiza una imagen.
Me di cuenta de que el error surge cuando se alcanza la siguiente línea:

bpy.ops.render.render(write_still=True)

El script se ejecuta perfectamente localmente en mi computadora portátil. ¿Tienes alguna idea sobre el problema?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error “Unable to open a display” suele ocurrir al intentar acceder a una pantalla mientras se ejecuta un script de forma remota, como es el caso de Google Colab. Para solucionar este problema, puedes utilizar Xvfb (X Virtual Frame Buffer) para crear una pantalla virtual, lo que permitirá que el script se ejecute como si se estuviera ejecutando localmente.

    Aquí tienes un fragmento de código actualizado que incluye el uso de Xvfb:

    import os
    
    # Instalar las dependencias necesarias
    !apt remove libtcmalloc-minimal4
    !apt install -y libtcmalloc-minimal4 xvfb
    
    # Configurar la pantalla virtual
    os.environ['DISPLAY'] = ':0'
    os.environ['TF_XLA_FLAGS'] = '--tf_xla_cpu_global_jit'
    os.system('Xvfb -screen 0 1024x768x24 -ac &')
    
    # Instalar Blender
    !wget https://download.blender.org/release/Blender2.93/blender-2.93.0-linux-x64.tar.xz
    !tar -xf blender-2.93.0-linux-x64.tar.xz
    !ln -s /content/blender-2.93.0-linux-x64/blender /usr/local/bin/blender
    
    # Ejecutar el script
    !blender -b -noaudio --python /content/code/generate_images.py -E CYCLES -a --cycles-device CUDA 
    

    Ten en cuenta que el código para configurar la pantalla virtual puede variar dependiendo del entorno específico y las dependencias que se estén utilizando.

Comments are closed.