如果我在环境中提供一个带有嵌入空间的变量,如下所示:
environment =
CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include"
我收到此错误:
ValueError:字典更新序列元素 #1 的长度为 1;2 是必需的
这是一个错误吗?有解决方法吗?
这是 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
这假设您有一个patches
sud 目录,其中包含来自下载的错误的补丁。该部分需要在您的 cmmi 部分之前列出,以便在该部分之前执行(或者您可以制造一个依赖项)。
另一种解决方案是像这样滥用配方的“配置命令”:
[buildthis]
recipe = zc.recipe.cmmi
...
configure-command =
export CPPFLAGS="-D_GNU_SOURCE -I${openssl:location}/include";
./configure