如果我在环境中提供带有嵌入空间的变量,如下所示:
environment =
CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include"
我收到此错误:
ValueError:字典更新序列元素#1的长度为1; 2是必需的
这是一个错误吗?有解决方法吗?
答案 0 :(得分:3)
这是zc.recipe.cmmi的一个缺点;它没有空格就无法处理环境变量。 bugtracker for the recipe中有一个补丁。
除了应用补丁之外,我目前还没有意识到解决方法。您可以使用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
这假设您有一个patches
目录,其中包含已下载错误的补丁。需要在cmmi部件之前列出该部件才能在该部件之前执行(或者您可以构造依赖关系)。
答案 1 :(得分:1)
另一种解决方案是滥用配方的'configure-command',如下所示:
[buildthis]
recipe = zc.recipe.cmmi
...
configure-command =
export CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include";
./configure