【问题标题】:ImportError: No module named backend_tkaggImportError:没有名为 backend_tkagg 的模块
【发布时间】:2014-01-02 03:49:26
【问题描述】:

我有这样的导入和代码:

import pandas as pd
import numpy as np
import statsmodels.formula.api as sm
import matplotlib.pyplot as plt    


#Read the data from pydatasets repo using Pandas
url = './file.csv'
white_side = pd.read_csv(url)    
#Fitting the model    
model = sm.ols(formula='budget ~ article_size',
               data=white_side,
               subset=white_side['producer'] == "Peter Jackson")
fitted = model.fit()
print fitted.summary()

执行此代码后出现这样的错误:

/usr/bin/python2.7 /home/seth/PycharmProjects/osiris_project/PMN_way/start.py
Traceback (most recent call last):
  File "/home/seth/PycharmProjects/osiris_project/PMN_way/start.py", line 5, in <module>
    import matplotlib.pyplot as plt
  File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 98, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
    globals(),locals(),[backend_name])
ImportError: No module named backend_tkagg

Process finished with exit code 1

我正在使用 openSUSE 和 pycharm 社区版最新版本,安装了 pandas、numpy 等 我该如何解决这个问题?

【问题讨论】:

    标签: python numpy module pycharm python-module


    【解决方案1】:

    我为那些使用 CARLA Simulator 可能会遇到此问题的人添加我的答案。

    使用 Python 3.6 并安装 matplotlib v 2.2.5 为我解决了这个问题。

    要删除 matplotlib 并安装正确的版本,您可以运行

    pip uninstall -r requirements.txt

    然后将matplotlib==2.2.5添加到需求文件并运行pip install -r requirements.txt --user以安装正确的版本。

    如果您缺少 requirements.txt 文件,这里是

    Pillow>=3.1.2
    numpy>=1.14.5
    protobuf>=3.6.0
    pygame>=1.9.4
    matplotlib==2.2.5
    future>=0.16.0
    scipy>=0.17.0
    

    如果您有不同的 python 版本,并且您想使用特定的 python 版本,py -&lt;version&gt; 将使用正确的 python 版本。

    警告:更改当前 Python 版本的 Path 变量可能很危险,特别是对于 linux 用户,可能会导致您无法再次打开终端。这是因为不同的 Python 版本可能与您当前使用的 pip 版本不兼容。如果您已经为时已晚并且您的终端已经搞砸了,您可以访问此tutorial 来解决您的问题。

    在完成所有修复后,您可能仍会收到此错误:

    TypeError: blit() got an unexpected keyword argument 'colormode'

    因此,您可能想要编辑 live_plotter.py 文件并从将其传递给 blit() 方法的所有行中删除 colormode 属性。

    【讨论】:

      【解决方案2】:

      我在使用 2.2.2 版本进行实时绘图时遇到了这个问题。尝试了以下方法:

      pip install matplotlib==3.0.0 --user

      它仍然是一个较旧的版本,但它可以工作。

      【讨论】:

        【解决方案3】:

        我之前遇到过这个问题,我通过使用 3.0.0 版的旧版本 matplotlib 解决了这个问题 如果您没有此版本,请尝试pip install matplotlib==3.0.0 希望这对您有所帮助!

        【讨论】:

          【解决方案4】:

          我通过在启动python之前设置变量解决了这个问题

          export MPLBACKEND=Agg; python3
          

          取自here

          【讨论】:

            【解决方案5】:

            我尝试了各种解决方案,只有这个对我有用:

            sudo pip install matplotlib --upgrade
            

            【讨论】:

              【解决方案6】:

              我可以通过放置来解决这个问题

              import matplotlib.backends.backend_tkagg
              

              上面

              import matplotlib.pyplot as plt
              

              注意,我在尝试运行使用 Py2exe 生成的可执行文件时收到了同样的错误。

              这是我从命令提示符运行 TheProgram.exe 时得到的结果:

              >>TheProgram.exe
              Traceback (most recent call last):
                File "ThePythonScriptToMakeIntoExe.py", line 14, in <module>
                File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 109, in <module>
                  _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
                File "C:\Python34\lib\site-packages\matplotlib\backends\__init__.py", line 32, in pylab_setup
                  globals(),locals(),[backend_name],0)
              ImportError: No module named 'matplotlib.backends.backend_tkagg'
              

              【讨论】:

                【解决方案7】:

                我使用 openSuse 13.1 并遇到相同的错误“ImportError: No module named backend_tkagg”。

                我通过这个建议解决了这个问题:http://forums.opensuse.org/showthread.php/416182-Python-matplolib

                我已经安装了 python-matplotlib-tk 包,现在它工作得很好。

                例如你可以使用:zypper install python-matplotlib-tk

                【讨论】:

                  【解决方案8】:

                  我以前在 openSUSE (12.3) 上也见过这个。修复方法是编辑默认的 matplotlibrc 文件。

                  您可以通过以下方式找到默认 matplotlibrc 文件的位置,以及它在我的机器上的位置:

                  >>> import matplotlib
                  >>> matplotlib.matplotlib_fname()
                  '/usr/lib64/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'
                  

                  后端设置是此文件中的第一个配置选项。将其从 TkAgg 更改为 Agg,或更改为您在系统上安装的其他后端。 matplotlibrc 文件中的 cmets 列出了 matplotlib 支持的所有后端。

                  这个文件中指定的后端只是默认的;您仍然可以在运行时通过添加以下两行来更改它,在任何其他 matplotlib 导入之前

                  import matplotlib
                  matplotlib.use("Agg")  # or whichever backend you wish to use
                  

                  【讨论】:

                  • 好答案。官方 matplotlib 配置示例:matplotlib.org/users/customizing.html
                  • 这对我不起作用。但是,我能够通过在导入 matplotlib.pyplot 之前导入后端模块来修复错误。看我的回答。我希望有一个比我的解决方案更好的解决方案,它涉及指定后端模块的路径。
                  猜你喜欢
                  • 2013-03-11
                  • 2012-12-07
                  • 2012-05-23
                  • 2019-07-29
                  • 2015-07-04
                  • 2014-03-15
                  • 2017-12-29
                  • 2014-09-12
                  • 2017-05-09
                  相关资源
                  最近更新 更多