ImportError DLL 加载失败导入 _tkinter
Posted
技术标签:
【中文标题】ImportError DLL 加载失败导入 _tkinter【英文标题】:ImportError DLL load failed importing _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/tcl
或tkinter
,但我没有找到单独的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 行,在我在 Windows 7 64 位上导入 Tkinter 时遇到了类似的问题 - 似乎 64 位库仍在以前的 64 位 python 安装的 libs 文件夹中。
正确卸载 64 位 python,然后使用 32 位安装程序修复解决了我的问题 - 你不需要使用 64 位 python。
【讨论】:
稍微阐述一下:我有同样的问题;事实证明,当我拿到它时,我的机器上有一个工厂安装的 32 位版本的 Python 2.7,然后我在它上面安装了一个 64 位版本而没有注意到。这导致混合版本的库都在“Python27”目录中——不漂亮。卸载它们并重新安装一个版本就可以了。 这似乎是答案的最佳选择......它解决了我的问题。也许给@david一些功劳并将其标记为正确答案?【参考方案2】:重新安装 Python。
如果还是不行,还有一个简单的解决办法:
-
卸载当前的 python。从您的
C:
驱动器中完全删除 Python27
文件夹。
从http://www.python.org/download/ 下载并安装 64 位版本的 Python。
下次只要有 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。一个简单的修复可以解决这个问题,如下所示:
-
在 Python27\Lib\site-packages\matplotlib\mpl-data\matplotlibrc 中找到 matplotlibrc 文件
使用记事本打开
将后端参数更改为“后端: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.dll
和tk86t.dll
从C:\<your python folder>\DLLs
复制到<your project folder>
(您有批处理文件,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.dll 和 tk86t.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,我按照以下步骤解决了问题:
将 C:\Python27 主文件夹更改为其他名称,例如 C:\Python27_old
在您的计算机上安装新的 Python27(32 位)
将 tcl 和 DLLs 文件夹从新安装的 python 复制到旧的(在此步骤之前,请复制 C:\Python27_old 的 tcl 和 DLL 以在后续步骤中遇到任何问题时将其恢复)
C:\Python27\tcl 复制并替换到C:\Python27_old
C:\Python27\DLLs 复制并替换到 C:\Python27_old
-
删除 C:\Python27
将 C:\Python27_old 重命名为 C:\Python27
请注意从您的 tcl 和 DLLs 文件夹中获取备份以将其恢复,以防您遇到任何进一步的问题。
【讨论】:
【参考方案9】:删除 64 位 python 并修复 32 位 python 对我有用。操作系统:64 位 Windows Server 2008。
【讨论】:
【参考方案10】:我也遇到了这个问题,因为我使用的是 64 位 python。可能python 64位没有很好的支持。
我的方法是解决它:
-
卸载 python 64 位。
安装 python 32 位。
卸载 64 位软件包。
pip uninstall xxx
。
安装 32 位软件包。 pip install xxx
。
【讨论】:
【参考方案11】:对于 Windows 10,
-
卸载所有版本的 Python
使用 PATH 变量安装 Python 3.x(您的最新版本)
python -mpip install -U matplotlib
安装没有 PATH 变量的 Python x.x(您的其他版本)
完成。再次尝试运行您的脚本。
【讨论】:
【参考方案12】:如果 Python 是由 OsGeo4W 安装的,那么您还应该在 OsGeo4W 安装工具中安装 python-tcltk
和/或 python3-tcltk
软件包。
【讨论】:
以上是关于ImportError DLL 加载失败导入 _tkinter的主要内容,如果未能解决你的问题,请参考以下文章
“ImportError:导入 _openmp_helpers 时 DLL 加载失败”?
ImportError:导入 _rolling_ball_cy 时 DLL 加载失败:
TensorFlow ImportError:导入_pywrap_tensorflow_internal时DLL加载失败:找不到指定的模块
ImportError:DLL 加载失败:找不到指定的过程。 (导入sklearn)