2014-11-20 52 views
1

我有一个项目想要维护Django 1.7的最新稳定版本(目前为1.7.1,但可能会更改)。buildout中的版本范围.fg

setup.py,我指定的版本范围是这样的:

setup(
    # ... 
    install_requires = ['setuptools', 
     'django >= 1.7, < 1.8', 
    ], 
) 

buildout.cfg,我指定的相同:

[versions] 
django = >= 1.7, < 1.8 
ipython = >= 2.3.1, < 3.0.0 

对于ipython,这个伟大的工程,但不幸的是Django似乎并不喜欢它:

Got Django 1.7.1. 
Uninstalling ipython_section. 
Installing python_section. 
While: 
    Installing python_section. 

An internal error occurred due to a bug in either zc.buildout or in a 
recipe being used: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/buildout.py", line 1942, in main 
    getattr(buildout, command)(args) 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/buildout.py", line 622, in install 
    installed_files = self[part]._call(recipe.install) 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/buildout.py", line 1366, in _call 
    return f() 
    File "/home/tk/thunderdome/eggs/zc.recipe.egg-2.0.1-py2.7.egg/zc/recipe/egg/egg.py", line 126, in install 
    reqs, ws = self.working_set() 
    File "/home/tk/thunderdome/eggs/zc.recipe.egg-2.0.1-py2.7.egg/zc/recipe/egg/egg.py", line 84, in working_set 
    allow_hosts=self.allow_hosts) 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/easy_install.py", line 812, in install 
    return installer.install(specs, working_set) 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/easy_install.py", line 644, in install 
    requirement = self._constrain(requirement) 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/easy_install.py", line 603, in _constrain 
    requirement = _constrained_requirement(constraint, requirement) 
    File "/usr/local/lib/python2.7/dist-packages/zc/buildout/easy_install.py", line 1400, in _constrained_requirement 
    _constrained_requirement_constraint(constraint, requirement) 
    File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2786, in parse 
    reqs = list(parse_requirements(s)) 
    File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2714, in parse_requirements 
    "version spec") 
    File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2679, in scan_list 
    raise ValueError(msg, line, "at", line[p:]) 
ValueError: ('Expected version spec in', 'django[]>=1.7,,>=1.7,<1.8', 'at', ',>=1.7,<1.8') 

为什么它失败了,我该如何解决它?

回答

2

版本规范something = <= 1234无效。 =<=都不是正确的语法。

我会以不同的方式处理问题。你使用你的setup.pyinstall_requires已经限制1.7到1.8之间的版本。构建将尊重该要求,所以您不需要在构建配置中复制它。

什么buildout版本固定是这样的:固定到一个特定版本。要么让增强选择它想要的,要么让它选择一个确切的版本。

我使用它的方式是将show-picked-versions = true选件添加到[buildout]零件。然后Buildout将打印出它所选择的版本列表。然后,我将该列表复制/粘贴到[versions]。这样你可以得到一个可重复的版本一个不错的速度提升,因为buildout不必再次搜索这些版本的pypi。

相关问题