2017-02-08 17 views
0

私のFedora 24を25にアップグレードした後、Fedora 24の下でうまく動作していたpythonスクリプトを実行することに問題があります。ファイルのbackendのデフォルトリストから何を選択しても、プロットは生成できません。特に、backendのリストでQt5Aggを選択すると、この奇妙なエラーメッセージが表示され、検索するだけでインターネット上のものが見つからないというのは本当に気になります。しかし、私はまた、アップグレードで何かが私のpythonやQtパッケージに悪影響を及ぼす可能性があることを知っています。なぜ接続性がbackend(もしあれば)の選択と関係しているのか、そしてデフォルトの選択肢のどれもが何らかのエラーメッセージを取り除くことができない理由を知る必要がありますか?しかし具体的には、なぜQt5Aggをデフォルトのbackendとしてmatplotlibrcファイルに設定すると、connect()というようなエラーメッセージが表示されるのですか?スクリプトを投稿すると回答に役立つかどうか教えてください。Linuxアップグレード後に "TypeError:connect()がNavigationToolbar2QT.message [str]と_show_message()"の間で失敗しましたか?

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の接続に関連しています。

関連する問題