python - 模块“cairo”没有“上下文”成员
问题描述
当我尝试运行此示例时,我收到以下问题消息:
- 模块“cairo”没有“ImageSurface”成员
- 模块“cairo”没有“上下文”成员
- 模块“cairo”没有“FORMAT_ARGB32”成员
这里有什么问题?
解决方案
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 文档的链接。
推荐阅读
- python - spacy 标记化合并了错误的标记
- angular - npm install 错误:找不到模块'./support/cli'。-如何复制另一个名称的角度项目
- ruby - 错误:未初始化的常量 Rails::Command::Server Command::APP_PATH (NameError) 在启动 rails 服务器 - rails 5.2.2
- javascript - 带有 let 和 var 关键字的 JavaScript 的意外行为
- android - How can I get Android device log(logcat) with robot Framework and Appium?
- php - fetching one column values from multiple rows and Add comma in echo/print_r in php
- html - 如何在 HTML 中将列表居中
- angular - 在 ngFor 如果单击 div 中的按钮,则单击其他 div 中的相应按钮
- augmented-reality - ARcore Augmented images with 3D object interaction
- amazon-web-services - Add new minor nodes to private Ethereum network set up using AWS Blockchain Template