【问题标题】:Python kivy entry point inflateRest2 could not be located libpng16-16.dllPython kivy 入口点 inflateRest2 无法定位 libpng16-16.dll
【发布时间】:2017-10-03 16:25:06
【问题描述】:

以非管理员用户身份安装 Kivy。 当我运行一个基本的 hello World 时,我得到“找不到 Python.exe 入口点”,其中包含以下详细信息:

过程入口点 inflateRest2 无法定位到 dll ....\python2.7\shared\sdl2\bin\libpng16-16.dll".

当我点击 OK 时,什么都没有加载。

谷歌搜索后,我添加了以下两条语句:

import os
os.environ['KIVY_IMAGE'] = 'pil,sdl2'

现在当我运行它时,它仍然显示入口点错误,但显示如下所示的输出:

如何解决入口点问题?

谢谢。

【问题讨论】:

标签: python dll kivy


【解决方案1】:

您可以使用此代码找到另一个 dll

import ctypes.util
ctypes.util.find_library("zlib1.dll")

所以我找到了原因。英特尔在 C:\Program Files\Intel\WiFi\bin\ 中引入了他们自己的 zlib1.dll,并将此目录添加到 PATH。因此,每当与 zlib 链接的应用程序尝试在 PATH 中没有 C:\msys64\mingw64\bin 的情况下执行时,它就会尝试加载不包含该方法的不同版本的 zlib。真正的解决方案是戳进英特尔并告诉他们停止做愚蠢的事情,比如用他们自己的东西来困扰系统范围的 PATH,但无论如何。只需将您的 mingw64 zlib1.dll 复制到您的应用目录中即可。

https://github.com/msys2/MINGW-packages/issues/813

【讨论】:

    【解决方案2】:
    1. 检查环境变量PATH,删除其他python路径。
    2. 我的操作系统是Windows10。将 zlib1.dll 从 C:\Windows\SysWOW64 复制到 C:\Windows\System32 。
    3. 再次检查。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,我转到目录,发现文件的名称与提示中显示的文件名不同,因此尝试更改其目录中的文件名。

      【讨论】:

        【解决方案4】:

        在我的情况下,C:\Users\[user]\Anaconda3\share\sdl2\bin\zlib1.dll 的文件大小与 System32 文件夹中同名 DLL 的文件大小不匹配。我只是将 DLL 文件移动到 System32 并替换了旧文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-20
          • 1970-01-01
          • 1970-01-01
          • 2012-10-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多