【问题标题】:How to Achieve Pure Isolation with Buildout如何通过扩建实现纯粹的隔离
【发布时间】:2013-01-04 01:21:13
【问题描述】:

上周我一直在努力使用 buildout 来获得纯粹的隔离。我想要做的是安装 Django 和我的项目需要的其他鸡蛋,与任何系统安装的隔离

我知道在herehere 之前有人问过这个问题,但这些问题的答案对我不起作用。

我的问题:如何配置 zc.buildout 为基于 Django 的项目提供纯包隔离?

注意事项:

  • 虽然在很多地方都提到过,但这绝对不是 zc.buildout 的默认设置(从 zc.buildout 1.6.x 版本开始)
  • 没有buildout 选项允许您执行此操作。
  • z3c.recipe.scripts 选项允许您为python 解释器执行此操作,但djangorecipe 不使用z3c.recipe.scripts,因此./bin/django shell 可以访问所有系统包。

【问题讨论】:

    标签: python django virtualenv buildout


    【解决方案1】:

    使用virtualenv实现隔离:

    pip install virtualenv
    virtualenv django_buildout
    cd django_buildout
    bin/pip install zc.buildout
    bin/buildout init
    

    zc.buildout 让你有目的地重复使用现有的鸡蛋,它的目的是满足扩建设定的要求。你真的应该把你所有的版本都固定下来,而不是让 buildout 为你挑选它们:

    [buildout]
    versions = versions
    allow-picked-versions = false
    
    [versions]
    zc.buildout = 1.6.3
    # etc.
    

    【讨论】:

    • 这很漂亮。对于初始构建而言,一切都很好且隔离,但我的团队成员将如何重新创建此构建?他们不会像我一样得到隔离。
    • @Jashugan:这就是确切版本引脚的来源;但您也确实需要最少的设置说明。在“使用 Python 2.7”旁边,添加“使用 virtualenv”。您需要一组说明来首先设置构建,而不是很难添加一个要求。
    • 那么,在执行上述步骤之前,他们会检查代码(即hg clone <url_to_project> django_buildout)吗?
    • 不,他们会在之后检查扩建。请注意,在我的项目中,我们通常,因为我们使用版本引脚并因此实现可重复性,因为团队保证最终得到正确的版本,无论它们来自站点包还是来自egg 缓存或仅为项目下载。
    猜你喜欢
    • 2011-04-19
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多