2017-02-08 12 views
0

После обновления моей Fedora 24 до 25 у меня возникла проблема с запуском скрипта python, который отлично работал под Fedora 24. Независимо от того, что я выбираю из этого списка по умолчанию для backend в файле matplotlibrc, я не могу создавать графики , В частности, когда я выбираю Qt5Agg в этом списке для backend, я получаю это странное сообщение об ошибке, и это действительно беспокоит, что я не могу найти что-либо, связанное с этим в Интернете, просто путем поиска. Но я также знаю, что что-то в апгрейде могло пойти не так, что повлияло на мои пакеты python и/или Qt. Мне просто нужно знать, почему подключение связано с выбором backend (если вообще есть), и почему ни один из вариантов по умолчанию не может избавиться от любого сообщения об ошибке? Но, если быть конкретным, зачем выбирать Qt5Agg по умолчанию backend из matplotlibrc файл содержит такое сообщение об ошибке, связанном с функцией connect()? Пожалуйста, дайте мне знать, если публикация скрипта поможет вам с ответом. Вот импорт в начале этого сценария:Как исправить «Ошибка TypeError: connect() между NavigationToolbar2QT.message [str] и _show_message()» после обновления Linux?

import numpy as np 
from numpy import nan 
import pandas as pd 
import matplotlib as mpl 
#import matplotlib 
#matplotlib.use('Qt5Agg') 
import matplotlib.pyplot as plt 
import pylab as pl 
from uncertainties import ufloat 
from uncertainties.umath import * 
from matplotlib.ticker import MaxNLocator 
from collections import OrderedDict 
import astropy.units as u 
from astropy.cosmology import FlatLambdaCDM, z_at_value 
from numpy import sqrt, mean, square, std, maximum, minimum 
from sklearn.metrics import mean_squared_error 
from scipy.stats import poisson, chi2 
import math 
import sys 

и сообщение об ошибке:

QObject::connect: Cannot connect NavigationToolbar2QT::message(QString) to (null)::_show_message() 
Traceback (most recent call last): 
    File "myscript.py", line 496, in <module>                             
    f, ((ax1, ax6, ax11), (ax2, ax7, ax12), (ax3, ax8, ax13), (ax4, ax9, ax14), (ax5, ax10, ax15)) = plt.subplots(5, 3, sharex=True, sharey=False , figsize=(20,9))        
    File "/usr/lib/python3.5/site-packages/matplotlib/pyplot.py", line 1177, in subplots                           
    fig = figure(**fig_kw)                                          
    File "/usr/lib/python3.5/site-packages/matplotlib/pyplot.py", line 527, in figure                            
    **kwargs)                                             
    File "/usr/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py", line 43, in new_figure_manager                     
    return new_figure_manager_given_figure(num, thisFig)                                   
    File "/usr/lib/python3.5/site-packages/matplotlib/backends/backend_qt5agg.py", line 51, in new_figure_manager_given_figure                  
    return FigureManagerQT(canvas, num)                                       
    File "/usr/lib/python3.5/site-packages/matplotlib/backends/backend_qt5.py", line 465, in __init__                        
    self.toolbar.message.connect(self._show_message)                                    
TypeError: connect() failed between NavigationToolbar2QT.message[str] and _show_message() 

ответ

1

Это ошибка в этом интерфейсе, подвергаются более строгой проверке в PyQt 5.7.

Это было fixed in July - Предлагаю вам открыть ошибку Fedora, чтобы обновить эти пакеты или выполнить резервное копирование исправления.

Для чего это происходит: это не связано с подключением, как в сети, а с подключением Qt signals and slots.