【问题标题】:Install pycairo or py2cairo using buildout使用 buildout 安装 pycairo 或 py2cairo
【发布时间】:2011-09-09 13:01:39
【问题描述】:

有没有人有尝试使用 buildout 为 django 安装 cairo 的经验? 它将安装 pycairo 或 py2cairo(第一个用于 python >3.0,最新用于 python 2.6,我正在使用)

我找到了 2 个用于安装的配方,它们都给了我错误,在 buildout.cfg 中我将它们分为 2 个部分(当然是单独尝试,而不是一起尝试)。 错误完全不同,但结果是一样的:我无法使用 buildout 安装 cairo.......

基于:http://pypi.python.org/pypi/tl.buildout_gtk/

[cairo_tl]
recipe = tl.buildout_gtk
#pycairo-url = http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
pycairo-url =   http://cairographics.org/releases/py2cairo-1.8.10.tar.gz
pycairo-md5sum = http://cairographics.org/releases/py2cairo-1.8.10.tar.gz.md5

基于:https://bitbucket.org/lgs/yaco.recipe.pycairo

[cairo_yaco]  
recipe = yaco.recipe.pycairo  
find-links = http://pypi.python.org/pypi/yaco.recipe.pycairo/0.1.1  
#find-links = http://pypi.python.org/pypi/yaco.recipe.pycairo/0.1  
# pkg-config-path ?

两者都需要本地安装 cairo(pycairo 和 py2cairo 依赖于此): 所以在服务器上使用:

sudo apt-get install libcairo2-dev

使用 tl.buildout_gtk 的部分:

使用 py2cairo-1.10.0 或 pycairo-1.8.2 都会给我一个 MD5 校验和不匹配 (有关可用版本,请参阅:http://cairographics.org/releases/) 例如:

Error: MD5 checksum mismatch downloading 'http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2'

或:

Error: MD5 checksum mismatch downloading 'http://cairographics.org/releases/py2cairo-1.8.10.tar.gz'

嘲讽 yaco 的部分:

我很确定这部分配置不正确(pkg-config-path 指的是本地 cairo 包),但我什至没有达到这一点。 它给出了一个错误:

DistributionNotFound: zc.recipe.cmmi

不过这个是安装在鸡蛋里的

顺便说一句,我在尝试通过 buildout 安装 PIL 时遇到了同样的头痛,我结合了互联网上的许多选项和帖子,以及大量的时间和试验和错误,解决了这个问题。 如果有人想知道我最终是如何让它工作的,请问,我会发布它。 (我认为我自己仍然是 django 初学者,所以我不确定是否有人对此解决方案感兴趣)

PIL 没有我在 cairo 找到的所有选项,所以我开始使用 cairo。在我的本地 PC 上一切正常(ubuntu 桌面),在我的服务器(Ubuntu 服务器)上,我无法让它工作...... 任何其他即时绘图的选项......(如 matplotlib......)让我知道。

【问题讨论】:

  • 您问题的PIL安装部分已回答here on SO。 :-)

标签: django cairo buildout recipe pycairo


【解决方案1】:

很确定您必须将真正的 md5 哈希值提供给 pycairo-md5 选项,而不是其中包含一些 url 的字符串。

【讨论】:

  • 好的,按照 ling 到 md5 校验和并填写它,让我更进一步。校验和不再有错误。下一个错误是缺少包。在投票之前,下面的另一个选项似乎也很有意义,所以我也想尝试一下。弄清楚这一切已经花了我很长时间,所以我没有使用 buildout,而是已经在 buildout 之外的服务器上完全安装了所有东西.....
  • 对于具有复杂依赖关系的此类软件包,最佳选择通常是使用您的操作系统机制安装它。例如,我总是使用 ubuntu 的 aptitude 安装 mapnik,而不是从 buildout 编译东西。
【解决方案2】:

我会尽可能避免使用这两种专门的食谱。在某些情况下,确实需要专门的配方,但在这些情况下,依赖关系非常古怪,以至于没有通用的构建/安装模式可用。我不知道 pycairo 所以可能是这样。

但在假设它是之前,请尝试以下操作。始终先尝试使用鸡蛋,方法是将其添加到相关构建部分的 eggs 选项中。如果这不起作用,请使用这些详细信息更新您的问题,然后尝试使用build options 添加单独的zc.recipe.egg 部分,这可能有助于成功构建分发版。如果这不起作用或发行版使用./configure && make && make install(又名“CMMI”)构建系统,请使用这些详细信息更新您的问题,然后尝试使用zc.recipe.cmmi 构建包,之后您可以使用extra-paths zc.recipe.egg 部分的选项以包含 CMMI 部分的相关位 (extra-paths = ${cmmi-part:location}/weird/path/to/python/modules)。

这是获得表现不佳/奇怪的分布的一般舞蹈。如果这不起作用,那么可能需要一个专门的配方,但总的来说,有一种方法可以让它与上述方法一起工作,而且更易于维护。

【讨论】:

  • 我同意我想避免使用食谱。但相信我,开罗需要它(这就是为什么我也在这个问题中要求为 cairo 提供替代方案,但可能在 1 篇文章中有很多问题)。我试过把它加到鸡蛋里。安装将尝试 pycairo 而不是想要的 py2cairo。无论如何,通过 buildout 弄清楚如何做到这一点已经花了我很多时间......所以我希望我能尽快找到更多时间来尝试你的选择,但现在我只是将它安装在 buildout 之外。感谢您的回答,看起来很有希望尝试一下。 (我可以投票只是时间问题)
  • 选择哪个答案作为我接受的答案是一个艰难的选择。 Reinoud 的评论是这样说的,但你是第一句话中的第一个:不要使用这种构建......我想尽可能避免在 OS 上安装,但对于 Cairo,你必须这样做。
猜你喜欢
  • 1970-01-01
  • 2011-01-29
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多