2

如果我在环境中提供一个带有嵌入空间的变量,如下所示:

environment =
    CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include"

我收到此错误:

ValueError:字典更新序列元素 #1 的长度为 1;2 是必需的

这是一个错误吗?有解决方法吗?

4

2 回答 2

3

这是 zc.recipe.cmmi 的一个缺点;它无法处理没有空格的环境变量。在bugtracker 中有一个针对配方的补丁。

除了应用补丁之外,我目前不知道有什么解决方法。您可以使用collective.recipe.patch配方在现有鸡蛋上应用补丁,这在这种情况下也应该有效(未尝试):

[buildout]
parts =
    patch-z.r.cmmi
    yourcmmipart

[patch-z.r.cmmi]
recipe = collective.recipe.patch
egg = zc.recipe.cmmi <= 1.3.4
patch = patches/environ_section_trunk_r101308.patch

这假设您有一个patchessud 目录,其中包含来自下载的错误的补丁。该部分需要在您的 cmmi 部分之前列出,以便在该部分之前执行(或者您可以制造一个依赖项)。

于 2011-06-29T16:10:37.137 回答
1

另一种解决方案是像这样滥用配方的“配置命令”:

[buildthis]
recipe = zc.recipe.cmmi
...
configure-command =
  export CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include";
  ./configure
于 2011-06-30T14:31:14.370 回答