首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >buildout.cfg中的版本范围

buildout.cfg中的版本范围
EN

Stack Overflow用户
提问于 2014-11-20 20:09:41
回答 1查看 312关注 0票数 1

我有一个项目,我想维护Django 1.7的最新稳定版本(目前为1.7.1,但这可能会改变)。

setup.py中,我指定了如下版本范围:

代码语言:javascript
复制
setup(
    # ...
    install_requires = ['setuptools',
        'django >= 1.7, < 1.8',
    ],
)

buildout.cfg中,我指定了相同的内容:

代码语言:javascript
复制
[versions]
django = >= 1.7, < 1.8
ipython = >= 2.3.1, < 3.0.0

对于ipython来说,这很好,但不幸的是Django似乎不喜欢它:

代码语言:javascript
复制
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')

为什么失败了,我该怎么解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 08:18:10

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

我会以不同的方式对待这个问题。您已经使用setup.pyinstall_requires将构建的版本限制在1.7-1.8之间。构建将满足这一要求,因此您不需要在构建配置中复制它。

构建的版本定位的确切目的是:将一个特定版本的固定在上。要么让buildout选择它想要的,要么让它选择一个确切的版本。

我使用它的方式是向show-picked-versions = true部件添加一个[buildout]选项。然后,Buildout将打印出它选择的版本列表。然后将该列表复制/粘贴到[versions]。这样,您就可以获得一个可重复的构建和一个很好的速度改进,因为构建不需要再搜索那些版本的pypi。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27048599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档