上周五,我为我的Django项目构建了一个RPM规范。 RPM创建virtualenv
,通过pip
下载依赖项并将所有内容放入包中。今天,我发现BeautifulSoup 3.2已经发布。幸运的是,我已将我的BeautifulSoup版本固定在requirements.txt中,所以我发现因为构建失败。
现在一个完全不同的问题是:我如何避免将来升级? BeautifulSoup已从PyPI中删除了所有以前的版本,因此我无法下载我实际测试过的版本。 pip
的下载缓存也没有帮助,因为pip
总是首先尝试检查PyPI。
你能推荐一些东西来避免这种情况吗?
答案 0 :(得分:2)
首先,这是一种不寻常的情况。我从未见过另一个软件包以BeautifulSoup的方式删除所有旧版本。我认为这可能是用户敌对行为,除非是在严重安全修复的情况下。
也就是说,如果你想要一个使用pip的可靠构建过程,你真的需要镜像你在本地所依赖的所有软件包。做起来并不难;你可以使用pip的--download选项(或你现有的pip缓存)获取所有的包tar包,然后将它们转储到索引的web服务目录中,并在你的需求文件中使用--find-links指向那里(加上--no-index告诉它不要使用PyPI)。
答案 1 :(得分:0)
仍然可以找到有问题的文件:只提供直接网址而不是包名:
http://www.crummy.com/software/BeautifulSoup/download/3.x/3.0.8.tar.gz
例如。