我遇到了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
,因为我想获得其他鸡蛋最新版本。
答案 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软件包的版本;根据您自己的平台需要进行调整。