windows Python:操作错误:无法装入库libcairo.so.2

t8e9dugd  于 2023-03-24  发布在  Windows
关注(0)|答案(6)|浏览(216)

我在Windows 7平台上运行Python脚本时遇到了一些问题。我已经安装了Python和cairo,最后一个使用“pip”。我使用以下命令运行脚本:

C:\Python34>python.exe label/make_label.py

我得到以下错误消息:

Traceback (most recent call last):
  File "label/make_label.py", line 6, in <module>
    import cairocffi as cairo
  File "C:\Python34\lib\site-packages\cairocffi\__init__.py", line 41, in <modul
e>
    cairo = dlopen(ffi, *CAIRO_NAMES)
  File "C:\Python34\lib\site-packages\cairocffi\__init__.py", line 34, in dlopen

    return ffi.dlopen(names[0])  # pragma: no cover
  File "C:\Python34\lib\site-packages\cffi\api.py", line 118, in dlopen
    lib, function_cache = _make_ffi_library(self, name, flags)
  File "C:\Python34\lib\site-packages\cffi\api.py", line 411, in _make_ffi_libra
ry
    backendlib = _load_backend_lib(backend, libname, flags)
  File "C:\Python34\lib\site-packages\cffi\api.py", line 400, in _load_backend_l
ib
    return backend.load_library(name, flags)
OSError: cannot load library libcairo.so.2: error 0x7e

我已经做了以下工作:

  • 将PATH添加到环境变量中的GTK/bin
  • 我检查文件夹GTK/bin,发现“libcairo-2.dll”,所以我将其重命名为libcairo.so

我不知道还有什么其他信息可以帮助解决这个问题,但请让我知道,我会尝试添加它。

nimxete2

nimxete21#

在Mac OS X上使用自制软件:

brew install cairo
brew install pango
xkrw2x1b

xkrw2x1b2#

我刚刚在Mac OSX 10.13上修复了这个问题,安装了Anaconda Python和cairosvg

$ conda install cairo pango gdk-pixbuf libffi cairosvg
$ cairosvg image.svg -o image.png

我从https://cairosvg.org/documentation/那里得到了这个想法,它说它的所有依赖项都可以用WeasyPrint安装。WeasyPrint在MacOSX上安装的文档https://weasyprint.readthedocs.io/en/latest/install.html#macos说要从HomeBrew获得依赖项:

brew install python3 cairo pango gdk-pixbuf libffi

所以我用conda代替它,它工作得很好。

wwodge7n

wwodge7n3#

cairo似乎依赖于一个共享库,而这个库不在标准搜索库中,但是,python正在调用dlopen来动态加载这个库,所以你可以尝试将libcairo.so.2(如果它是一个链接,那么确保引用位于同一个文件夹中)放在工作目录中。你也可以尝试pkg-config来设置环境。

wtlkbnrh

wtlkbnrh4#

我只是有同样的问题(“OSError:无法加载库libcairo.so.2:error 0x7e”),这是我在Windows(Windows 7 x64,Python 3.4.2 x86(MSC v.1600 32位))上解决问题的方法:

***下载了GTK+堆栈的all-in-one bundle,包括第三方依赖项(包含libcairo-2.dll和其他与Cairo相关的库)
解压缩此存档到不包含空格的路径(例如C:\Programs\gtk+
已将解压缩目录的
bin子目录
(包含上述libcairo-2.dll等必要文件)添加到PATH中

  • Win+R,SystemPropertiesAdvanced
    • 环境变量...*
  • 将此目录添加到Path变量(添加到用户变量或系统变量,在分号后)(例如...;C:\foo;C:\Programs\gtk+
  • 好的
  • pip install cairosvg
  • 用一个非常简单的代码测试了它,它已经工作了:
import cairosvg
testsvg = '<svg height="30" width="30">\
    <text y="10">123</text>\
    </svg>'
svgConvertedToPng = cairosvg.svg2png(bytestring=testsvg)
print(svgConvertedToPng)
t30tvxxf

t30tvxxf5#

在Windows 10上解决如下:
1.下载headless UniConverter installer
1.找到它的安装位置,并将其 dll 子目录添加到系统路径。
1.关闭并重新打开命令窗口以获取更新的路径。

mwg9r5ms

mwg9r5ms6#

我在互联网上搜索快速解决方案时为MAC OSX找到了什么。
因此,在安装外部库与自制软件:

brew install cairo #and other necessary stuff

library linking

ln -s /opt/homebrew/lib/libcairo.2.dylib .

需要链接lib来运行python代码,它对我很有效。

相关问题