4

我对 python egg 版本有疑问。在我的开发机器上我有2.3.13python-ldap版本,而他们机器上的大学有2.3.10版本。两个库都安装在操作系统级别。python-ldap

是否可以告诉buildout不要寻找最新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 回答