zc.buildout版本

时间:2012-07-16 12:03:08

标签: python buildout

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

是否可以告诉 buildout 不要寻找最新的python-ldap版本?

我正在寻找类似的东西:

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

我不想使用buildout -N,因为我想获得其他鸡蛋最新版本。

1 个答案:

答案 0 :(得分:4)

Buildout只允许你使用versions部分确定(确切)版本:

[buildout]
versions = myversions

[versions]
python-ldap = 2.3.13

versions部分中的[buildout]键指定要用于引脚的部分(大部分也只是调用该部分[versions])。

如果您需要将其固定到不同机器的版本,则必须使用基于外部参数生成版本的配方。

在下面的示例中,我使用mr.scripty recipe运行一些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软件包的版本;根据您自己的平台需要进行调整。