代码之家  ›  专栏  ›  技术社区  ›  Nikolai Prokoschenko

如何在不升级到每个上游版本的情况下使用基于virtualenv的部署方法?

  •  1
  • Nikolai Prokoschenko  · 技术社区  · 15 年前

    上周五,我已经为我的Django项目构建了一个RPM规范。转速产生 virtualenv ,通过下载依赖项 pip 把所有东西都放进包裹里。今天,我发现美女组3.2已经发布了。幸运的是,我的BeautifulSoup版本已经固定在requirements.txt中,所以我发现是因为构建失败。

    现在一个完全不同的问题是:我如何避免在未来升级东西?BeautifulSoup已经从PyPI中删除了所有以前的版本,所以我无法下载实际测试过的版本。 皮普 的下载缓存在这里也没有帮助,因为 皮普 总是先检查PyPI。

    你能推荐一些避免这种情况的方法吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Carl Meyer    15 年前

    首先,这是一个不寻常的情况。我从未见过另一个软件包像BeautifulSoup那样删除所有旧版本。我认为这是用户的恶意行为,除了可能在严重的安全修复的情况下。

    也就是说,如果您想要使用pip的可靠构建过程,那么您确实需要镜像您在本地依赖的所有包。这并不难做到,你可以使用PIP的下载选项(或者你现有的PIP缓存)来获得所有的包TAGLASH,然后将它们转储到一个索引的、Web服务的目录中,并使用你的需求文件中的查找链接来指向PIP(加上没有索引来告诉它不要使用PYPI)。

        2
  •  0
  •   Matthew Schinckel    15 年前

    仍然可以找到有问题的文件:只需提供直接url而不是包名:

    http://www.crummy.com/software/BeautifulSoup/download/3.x/3.0.8.tar.gz

    例如。