【问题标题】:cairocffi - DLL cannot find entry point inflateReset2cairocffi - DLL 找不到入口点 inflateReset2
【发布时间】:2018-01-10 13:22:40
【问题描述】:

我正在尝试让 cairocffi 在 Windows 10 上运行。
我有 64 位操作系统和 64 位 Python 我是 Python 新手,我遇到了问题。

我完全按照 cairocffi 的建议做到了这一点。

为此,我首先下载并安装了 GTK+。

1)好的,安装我安装的cairo图形库
此处描述的 GTK+:https://www.gtk.org/download/windows.php

2) 这一步是安装 MSYS2 (http://www.msys2.org/)
所以我也遵循了确切的说明

3) 现在,当我尝试从 python 导入 cairocffi 时出现此错误

    C:\>python
    Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cairocff
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ModuleNotFoundError: No module named 'cairocff'
    >>> import cairocffi
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Programs\Python36\lib\site-packages\cairocffi\__init__.py", line 41, in <module>
        cairo = dlopen(ffi, 'cairo', 'cairo-2')
      File "C:\Programs\Python36\lib\site-packages\cairocffi\__init__.py", line 38, in dlopen
        raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))
    OSError: dlopen() failed to load a library: cairo / cairo-2

4) 我的 PATH 已经指向 C:\Programs\msys64\mingw64\bin
我可以在那里看到一些相关的 cairo DLL。

C:\Programs\msys64\mingw64\bin>dir *cair*
 Volume in drive C is OS
 Volume Serial Number is BC61-492E

 Directory of C:\Programs\msys64\mingw64\bin

12/13/2017  03:10 AM         1,014,974 libcairo-2.dll
12/13/2017  03:10 AM            37,299 libcairo-gobject-2.dll
12/13/2017  03:10 AM           161,107 libcairo-script-interpreter-2.dll
09/04/2017  01:07 AM            64,920 libpangocairo-1.0-0.dll
               4 File(s)      1,278,300 bytes
               0 Dir(s)  115,848,929,280 bytes free

我也非常谨慎地只安装 64 位软件包。

所以我不明白... 为什么我会收到这个 DLL 入口点错误?!

可能是因为 DLL 是用 GCC for Windows 编译的,而我的 Python 发行版是用 MSC(Visual Studio 编译器)编译的吗?

【问题讨论】:

    标签: python cairo


    【解决方案1】:

    在遇到类似问题后对我有用的建议解决方法。

    原因似乎与特定文件(zlib1.dll)有关,并且检查我的 PATH 变量,我有多个这些,由不同的程序使用。我所做的是将 Windows PATH 中的“C:\Program Files\GTK3-Runtime Win64\bin”条目移动为第一个条目(或将其放在引用 zlib1.dll 的其他 PATH 条目之前)。从那以后没有遇到任何问题。

    【讨论】:

      猜你喜欢
      • 2012-12-08
      • 1970-01-01
      • 2015-07-19
      • 2012-03-13
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多