【问题标题】:ImportError DLL load failed importing _tkinterImportError DLL 加载失败导入 _tkinter
【发布时间】:2012-02-02 05:28:46
【问题描述】:

我正在使用 python 2.7.2 和 windows 7。我搜索了互联网、帮助和其他资源,但我找不到我的问题的答案。

我的一个源导入tkinter,而这个导入_tkinter。此时它说ImportError DLL load failed

 Traceback (most recent call last): File "NERO/show_image.py", line 13,
 in <module> import Tkinter File "C:\Python27\lib\lib-tk\Tkinter.py", line 38,
 in <module> import FixTk File "C:\Python27\lib\lib-tk\FixTk.py", line 65,
 in <module> import _tkinter ImportError: DLL load failed: %1 is not a valid Win32 application.
 2012-Jan-04 12:27:21.889374 (M) [python] Finished process 

我搜索了 _tkinter,我在 Python27/libs 中发现它是一个 lib 文件。

在许多网站上都说要安装tk/tcltkinter,但我没有找到单独的Windows 安装。

使用来自http://www.python.org/getit/releases/2.7/ 的 Windows x86 MSI 安装程序 (2.7)。在 Windows 7 64 位中。 python版本为32位。

【问题讨论】:

  • 您的计算机是 64 位的吗?使用官方二进制安装程序时,您无需安装任何东西即可使 python tkinter 开箱即用。您能发布实际的完整回溯吗?
  • 是的,我已经安装了 windows 7 64。python 版本是 32 位。回溯(最后一次调用):文件“NERO/show_image.py”,第 13 行,在 中 import Tkinter 文件“C:\Python27\lib\lib-tk\Tkinter.py”,第 38 行,在 > 导入 FixTk 文件“C:\Python27\lib\lib-tk\FixTk.py”,第 65 行,在 中导入 _tkinter ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序。 2012-Jan-04 12:27:21.889374 (M) [python] 完成过程
  • 不确定您的问题是什么,但这是我在与 32/64 位发生冲突时遇到的典型错误。对不起,我不能帮助更多。也许你应该尝试清理你的实际设置并重新安装 64 位的 python。
  • 这个问题在我的 64 位 Windows 中疯狂地出现在 64 位 python 可执行文件中:(

标签: python windows tkinter


【解决方案1】:

我在 Windows 7 64 位上导入 Tkinter 时遇到了类似的问题 - 似乎 64 位库仍在以前的 64 位 python 安装的 libs 文件夹中。

正确卸载 64 位 python,然后使用 32 位安装程序修复解决了我的问题 - 你不需要使用 64 位 python。

【讨论】:

  • 稍微阐述一下:我有同样的问题;事实证明,当我拿到它时,我的机器上有一个工厂安装的 32 位版本的 Python 2.7,然后我在它上面安装了一个 64 位版本而没有注意到。这导致混合版本的库都在“Python27”目录中——不漂亮。卸载它们并重新安装一个版本就可以了。
  • 这似乎是答案的最佳选择......它解决了我的问题。也许给@david一些功劳并将其标记为正确答案?
【解决方案2】:

重新安装 Python。

如果还是不行,还有一个简单的解决办法:

  1. 卸载当前的 python。从您的 C: 驱动器中完全删除 Python27 文件夹。
  2. http://www.python.org/download/ 下载并安装 64 位版本的 Python。
  3. 下次只要有 64 位应用程序可供选择,就不要将 32 位应用程序与 64 位操作系统混用!

【讨论】:

  • 我不知道这是不是一个很好的建议,难道很多库不能在 64 位 python 上正常工作吗?
  • @AlexS 我对 Python 有一些不满,但这不是其中之一。任何用 python 编写的库都可以正常运行,我还没有找到一个用 C 编写的库,它不会在安装时尝试为本地架构进行编译和/或以牺牲性能为代价退回到纯 python 解决方案。
【解决方案3】:

我在一个简单的应用程序中尝试使用 matplotlib 时遇到了这个错误。

卸载 Python 并将其文件夹从 C-Drive 中删除。 下载并安装 64 位 python。 按照这个在你的机器上安装 pip。 http://www1.cmc.edu/pages/faculty/alee/cs40/penv/installFlaskOnWindows.html 这终于对我有用了

【讨论】:

    【解决方案4】:

    我遇到了同样的问题并且能够卸载 Python 2.7(使用 Windows 7 的“卸载”服务),然后从这里重新安装它: python-2.7.6.msi

    另外,如果您担心在您的 python 库中确保 64 位一致性,那么您可以找到以下library list site to be a great resource。它有许多 64 位版本的 python 库。

    【讨论】:

      【解决方案5】:

      请不要为此重新安装 Python。一个简单的修复可以解决这个问题,如下所示:

      1. 在 Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc 中找到 matplotlibrc 文件
      2. 使用记事本打开
      3. 将后端参数更改为“后端:Qt5Agg”

      它会解决的。无需重新安装。

      【讨论】:

      • 太棒了!这对我有用。你知道幕后发生了什么吗?
      • 新的matplotlib安装与Tk后端不兼容(matplotlib默认),因此通过这些步骤我们将默认后端更改为Qt5Agg
      【解决方案6】:

      无需重新安装即可解决

      1-将这 3 行添加到您的 setup.py 中:

      ...
      import os
      os.environ['TCL_LIBRARY']= r'C:\<your python folder>\tcl\tcl8.6'
      os.environ['TK_LIBRARY'] = r'C:\<your python folder>\tcl\tk8.6'
      ...
      setup(
      ... 
      ) 
      

      2-tcl86t.dlltk86t.dllC:\&lt;your python folder&gt;\DLLs 复制到&lt;your project folder&gt;(您有批处理文件,setup.py)。

      3- 在 setup.py 中将 "include_files": ["tcl86t.dll", "tk86t.dll"] 添加到 option,类似于:

      options= { 'build_exe':{'packages':[.....], "include_files": ["tcl86t.dll", "tk86t.dll"]}},
      

      注意:如果您没有在步骤 2 中提到的DLLs 文件夹中找到 tcl86t.dlltk86t.dll,然后再次尝试搜索它,但这次使用 DLLs 文件夹中的研究选项卡。

      【讨论】:

      • 您是否已经在没有 PYTHON 的目标机器上尝试过这个?这是如何获得投票的?
      【解决方案7】:

      我遇到了类似的问题。我的 Python 版本是 2.7.12 和 64 位,我使用的是 Windows 10、64 位操作系统。 我尝试导入 Tkinter,但我得到的是

      ImportError: DLL load failed: %1 is not a valid Win32 application
      

      我卸载了 Python 并删除了它的所有痕迹。然后我安装了 Python 2.7.14(32 位),这似乎解决了我的问题。我不再收到此错误消息。

      【讨论】:

        【解决方案8】:

        我的机器上安装了很多python包,所以我不想卸载并重新安装整个python,我按照以下步骤解决了问题:

        1. 将 C:\Python27 主文件夹更改为其他名称,例如 C:\Python27_old

        2. 在您的计算机上安装新的 Python27(32 位)

        3. 将 tcl 和 DLLs 文件夹从新安装的 python 复制到旧的(在此步骤之前,请复制 C:\Python27_old 的 tcl 和 DLL 以在后续步骤中遇到任何问题时将其恢复)

        C:\Python27\tcl 复制并替换到C:\Python27_old

        C:\Python27\DLLs 复制并替换到 C:\Python27_old

        1. 删除 C:\Python27
        2. 将 C:\Python27_old 重命名为 C:\Python27

        请注意从您的 tcl 和 DLLs 文件夹中获取备份以将其恢复,以防您遇到任何进一步的问题。

        【讨论】:

          【解决方案9】:

          删除 64 位 python 并修复 32 位 python 对我有用。操作系统:64 位 Windows Server 2008。

          【讨论】:

            【解决方案10】:

            我也遇到了这个问题,因为我使用的是 64 位 python。可能python 64位没有很好的支持。

            我的方法是解决它:

            1. 卸载 python 64 位。
            2. 安装 python 32 位。
            3. 卸载 64 位软件包。 pip uninstall xxx
            4. 安装 32 位软件包。 pip install xxx

            【讨论】:

              【解决方案11】:

              对于 Windows 10,

              1. 卸载所有版本的 Python
              2. 使用 PATH 变量安装 Python 3.x(您的最新版本)
              3. python -mpip install -U matplotlib
              4. 安装没有 PATH 变量的 Python x.x(您的其他版本)

              完成。再次尝试运行您的脚本。

              【讨论】:

                【解决方案12】:

                如果 Python 是由 OsGeo4W 安装的,那么您还应该在 OsGeo4W 安装工具中安装 python-tcltk 和/或 python3-tcltk 软件包。

                【讨论】:

                  猜你喜欢
                  • 2020-03-31
                  • 2021-07-25
                  • 2021-04-17
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2022-10-12
                  • 2021-05-21
                  • 1970-01-01
                  相关资源
                  最近更新 更多