尝试导入Tkinter时导入错误:无法导入名称_cnfmerge

时间:2017-03-15 10:20:43

标签: python-2.7 tkinter

尝试导入Tkinter时遇到此错误

Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>> import Tkinter

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>
  File "Tkinter.py", line 3, in <module>

    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg

  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 7, in <module>

    from six.moves import tkinter_filedialog as FileDialog
  File "C:\Python27\lib\site-packages\six.py", line 203, in load_module
    mod = mod._resolve()

  File "C:\Python27\lib\site-packages\six.py", line 115, in _resolve
    return _import_module(self.mod)

  File "C:\Python27\lib\site-packages\six.py", line 82, in _import_module
    __import__(name)

  File "C:\Python27\lib\lib-tk\FileDialog.py", line 12, in <module>
    from Dialog import Dialog

  File "C:\Python27\lib\lib-tk\Dialog.py", line 4, in <module>
    from Tkinter import _cnfmerge

ImportError: cannot import name _cnfmerge

我不确定这里发生了什么,但我认为这可能与numpy有关。

2 个答案:

答案 0 :(得分:1)

File "Tkinter.py", line 3, in <module>

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg

真正的Tkinter.py当然不包含对matplotlib的任何引用。在Python的搜索路径上有另一个具有相同名称的文件,它会影响真实模块。

答案 1 :(得分:0)

我正在python3 + tkinter中构建应用程序,并且遇到了同样的问题。我用“ NavigationToolbar2Tk”替换了“ NavigationToolbar2TkAgg”,并且编译成功。尝试更换它,看看它是否适合您。

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk