首页 > 解决方案 > 模块“cairo”没有“上下文”成员

问题描述

当我尝试运行此示例时,我收到以下问题消息:

  1. 模块“cairo”没有“ImageSurface”成员
  2. 模块“cairo”没有“上下文”成员
  3. 模块“cairo”没有“FORMAT_ARGB32”成员

这里有什么问题?

标签: pythoncairo

解决方案


Pycairo需要在您的系统上安装 cairo C 头文件。它写在文档的“入门”部分。

该示例使用 Anaconda 的原因是因为 Anaconda 将 cairo 作为conda 包安装。

一个 conda 包是由一个名为 conda-build 的工具使用 conda 配方(例如,这里是 cairo 的配方)构建的。当构建 cairo conda 包时, conda-build 遵循它在 conda 配方的meta.yaml文件中所写的内容。从meta.yml文件中可以看出,cairo 是作为 tarball 下载的。然后,如果您在 Windows 上,conda-build 运行bld.bat文件并编译 cairo。否则,如果您在 Linux 或 macOS 上,conda-build 使用build.sh文件执行相同的操作。换句话说,Anaconda(通过 conda-build)为您安装了 cairo C 头文件。

注意:我不是 conda 专家,我认为 conda-build 工作的过程过于简单。如果您有兴趣,这里是官方 conda-build 文档的链接。


推荐阅读