2

次のように、環境にスペースが埋め込まれた変数を提供するとします。

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

このエラーが発生します:

ValueError:ディクショナリ更新シーケンス要素#1の長さは1です。2が必要です

これはバグですか?回避策はありますか?

4

2 に答える 2

3

これはzc.recipe.cmmiの欠点です。スペースなしでは環境変数を処理できません。レシピのバグトラッカーで利用可能なパッチがあります。

現在、パッチを適用する以外の回避策については認識していません。レシピを使用して既存の卵にパッチを適用できます。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、ダウンロードされたバグのパッチを含むsuddirectoryがあることを前提としています。cmmiパーツの前にパーツをリストして、そのパーツの前に実行する必要があります(または、依存関係を作成できます)。

于 2011-06-29T16:10:37.137 に答える
1

別の解決策は、次のようにレシピの「configure-command」を悪用することです。

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