4

Pythonの卵のバージョンに問題があります。私の開発マシンにはpython-ldapバージョン2.3.13がありますが、そのマシンにある大学にはバージョン2.3.10があります。両方のpython-ldapライブラリはOSレベルでインストールされます。

最新バージョンを探さないようにビルドアウトに指示することは可能ですか?python-ldap

私はこのようなものを探しています:

# using buildout-versions extension
[versions]
python-ldap = any
or
python-ldap => 2.1

buildout -N他のeggの最新バージョンを入手したいので、使用したくありません。

4

1 に答える 1

4

Buildoutでは、versionsセクションを使用して(正確な)バージョンのみを固定できます。

[buildout]
versions = myversions

[versions]
python-ldap = 2.3.13

ここversionsで、セクションのキーは[buildout]、ピンに使用されるセクションを指定します(ほとんどの場合、そのセクション[versions]も呼び出します)。

それをマシンごとに異なるバージョンに固定する必要がある場合は、外部パラメーターに基づいてバージョンを生成するレシピを使用する必要があります。

次の例では、mr.scriptyレシピを使用してPythonを実行し、バージョンピンを取得しています。

[buildout]
versions = versions

[versions]
python-ldap = ${dynamic:python-ldap}

[dynamic]
recipe = mr.scripty
python-ldap =
    ... import subprocess
    ... return subprocess.check_output(
    ...    'dpkg-query', '-W', '-f', '${Version}', 'python-ldap').rsplit('-')[0]

上記の例では、dpkg-queryユーティリティを使用して、DebianまたはUbuntu上のpython-ldapパッケージのバージョンを判別しています。必要に応じて、独自のプラットフォームに合わせて調整してください。

于 2012-07-16T13:39:41.790 に答える