v2.10.1: fails to start on Python 3.14
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Empieza en src/e3sm_quickview/view_manager.py, en la llamada asyncio.get_event_loop() identificada en el informe, y luego comprueba cómo se inicia el servidor y cómo wslink gestiona la configuración del bucle. Reproduce el problema con Python 3.14 usando el comando de inicio indicado; el trabajo estará hecho cuando quickview se inicie sin el error de bucle ausente. Considera añadir Python 3.14 a CI, tal como se sugiere.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We're testing e3sm-quickview 2.10.1 (from conda-forge) on Perlmutter, in the upcoming E3SM-Unified 1.14.0, which uses Python 3.14.7. Running quickview crashes on startup, before the server starts:
$ quickview
VTKStreaming Video encoding is NOT AVAILABLE (missing Python package)
Loading plugin : .../e3sm_quickview/plugins/eam_gridlines.py
Loading plugin : .../e3sm_quickview/plugins/eam_projection.py
Loading plugin : .../e3sm_quickview/plugins/eam_reader.py
Loading plugin : .../e3sm_quickview/plugins/eam_filters.py
Traceback (most recent call last):
File ".../bin/quickview", line 10, in <module>
sys.exit(main())
~~~~^^
File ".../e3sm_quickview/app.py", line 802, in main
app = EAMApp()
File ".../e3sm_quickview/app.py", line 75, in __init__
self.view_manager = ViewManager(self.server, self.source)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../e3sm_quickview/view_manager.py", line 100, in __init__
self.loop = asyncio.get_event_loop()
~~~~~~~~~~~~~~~~~~~~~~^^
File ".../python3.14/asyncio/events.py", line 718, in get_event_loop
raise RuntimeError('There is no current event loop in thread %r.'
% threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'MainThread'.
Cause: Starting with Python 3.14, asyncio.get_event_loop() raises RuntimeError when no loop is set, where earlier versions created one implicitly. ViewManager.__init__ (view_manager.py#L100) runs before trame/wslink have started a loop, so it fails. The same line is still on main.
Suggested fix: wslink 2.5.7 already handles this (wslink/core.py, wslink/server.py) with:
try:
self.loop = asyncio.get_event_loop()
except RuntimeError:
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
wslink then picks up the same loop when the server starts. We checked this by setting a loop before calling main():
python -c "import asyncio, sys; asyncio.set_event_loop(asyncio.new_event_loop()); from e3sm_quickview.app import main; sys.argv[0]='quickview'; sys.exit(main())" --server
With that, the server starts normally and prints the connection URL. Since requires-python = ">=3.10" allows 3.14, it may also be worth adding Python 3.14 to CI.
This looks related to #111 (event loop missing in debounce) but affects a different code path.
Environment:
- e3sm-quickview 2.10.1 (conda-forge, noarch)
- Python 3.14.7
- trame 4.0.0, trame-server 4.0.0, wslink 2.5.7
- NERSC Perlmutter login node (pm-cpu)
Drafted by Claude Code and @xylar together.
- Lenguaje dominante
- JavaScript
- Estrellas
- 3
- Forks
- 4
- Merge medio
- 11 h 51 min
- PR fusionados (30 d)
- 6
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Kitware/QuickView
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
not urgent
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Spherical projection: globe appears to zoom in or out when center latitude changesQuizá libre de nuevo @jourdain la tomó hace 55 días y no hay ningún pull request abierto. Abiertonot urgent
-
Map improvement: outlines of countries, states, etc.Quizá libre de nuevo @jourdain la tomó hace 56 días y no hay ningún pull request abierto. Abiertonot urgent
-
maintenance
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de Kitware/QuickView
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
smansfield635-create/smansfield635-create.github.io#5818 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
danjdewhurst/story-skills#538 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
anoopcodehack/DevBoard#589 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 Menos de una hora Aptitud para principiantes 85/100
capricorn86/happy-dom#2474 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
vigetlabs/mega-menu-block#30 ·
Los mantenedores suelen responder en 2 días