Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

bubble up error on python > `import matplotlib` (e.g. bogus MPLBACKEND)

Abierto
#474 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
julia, matplotlib, python

Línea de trabajo

Reproduce el caso inválido de MPLBACKEND en Julia y compáralo con el traceback de Python. Empieza en PyPlot/src/init.jl, alrededor de la llamada a init mostrada en el stack trace, y luego inspecciona la ruta pyimport_conda de PyCall; se considera terminado cuando la importación expone el error subyacente de matplotlib y el comportamiento innecesario de Conda se entiende o se corrige.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

julia> ENV["MPLBACKEND"]="aaaaaaaaaagtk";  import PyPlot;
[ Info: Installing matplotlib via the Conda matplotlib package...
[ Info: Running `conda install -y matplotlib` in root environment
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.

ERROR: InitError: PyCall.PyError("PyImport_ImportModule", PyCall.PyObject(Ptr{PyCall.PyObject_struct} @0x0000000135d73760), PyCall.PyObject(Ptr{PyCall.PyObject_struct} @0x000000013a353b30), PyCall.PyObject(Ptr{PyCall.PyObject_struct} @0x000000013a35eaf0))
Stacktrace:
 [1] pyimport(::String) at /Users/goretkin/.julia/packages/PyCall/zqDXB/src/PyCall.jl:536
 [2] pyimport_conda(::String, ::String, ::String) at /Users/goretkin/.julia/packages/PyCall/zqDXB/src/PyCall.jl:700
 [3] pyimport_conda at /Users/goretkin/.julia/packages/PyCall/zqDXB/src/PyCall.jl:693 [inlined]
 [4] __init__() at /Users/goretkin/.julia/packages/PyPlot/XHEG0/src/init.jl:179
 [5] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:692
 [6] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:776
 [7] _require(::Base.PkgId) at ./loading.jl:1001
 [8] require(::Base.PkgId) at ./loading.jl:922
 [9] require(::Module, ::Symbol) at ./loading.jl:917
during initialization of module PyPlot

is different from

>>> import os; os.environ["MPLBACKEND"] = "aaaaaaagtk"
>>> import matplotlib
Traceback (most recent call last):
  File "/Users/goretkin/.julia/conda/3/lib/python3.7/site-packages/matplotlib/__init__.py", line 802, in __setitem__
    cval = self.validate[key](val)
  File "/Users/goretkin/.julia/conda/3/lib/python3.7/site-packages/matplotlib/rcsetup.py", line 266, in validate_backend
    else _validate_standard_backends(s))
  File "/Users/goretkin/.julia/conda/3/lib/python3.7/site-packages/matplotlib/rcsetup.py", line 64, in __call__
    % (self.key, s, list(self.valid.values())))
ValueError: Unrecognized backend string 'aaaaaaagtk': valid strings are ['GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/goretkin/.julia/conda/3/lib/python3.7/site-packages/matplotlib/__init__.py", line 1317, in <module>
    rcParams['backend'] = os.environ.get('MPLBACKEND')
  File "/Users/goretkin/.julia/conda/3/lib/python3.7/site-packages/matplotlib/__init__.py", line 804, in __setitem__
    raise ValueError("Key %s: %s" % (key, str(ve)))
ValueError: Key backend: Unrecognized backend string 'aaaaaaagtk': valid strings are ['GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', 'WebAgg', 'WX', 'WXAgg', 'WXCairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template']
>>>

Seems also to be unnecessarily doing something with conda.

Lenguaje dominante
Julia
Estrellas
489
Forks
90
Métricas de merge de PR
Sin PR fusionados en 30 d

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de JuliaPy/PyPlot.jl

Todos los issues de JuliaPy/PyPlot.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.