Как я могу использовать метод развертывания на основе virtualenv без обновления до каждой вышестоящей версии? - PullRequest
1 голос
/ 22 ноября 2010

В прошлую пятницу я создал спецификацию RPM для моего проекта Django. RPM создает virtualenv, загружает зависимости через pip и помещает все в пакеты. Сегодня я узнал, что BeautifulSoup 3.2 был выпущен. К счастью, моя версия BeautifulSoup была закреплена в файле require.txt, поэтому я узнал об этом из-за ошибки сборки.

Теперь совершенно другой вопрос: как мне избежать обновления в будущем? BeautifulSoup удалил все предыдущие версии из PyPI, поэтому я не могу загрузить версию, с которой я действительно тестировал. Кэш загрузки pip здесь тоже не помогает, так как pip всегда сначала пытается проверить PyPI.

Можете ли вы порекомендовать что-нибудь, чтобы избежать этой ситуации?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Во-первых, это необычная ситуация. Я никогда не видел, чтобы другой пакет удалял все старые версии так, как это делает BeautifulSoup. Я считаю, что это скорее враждебное поведение пользователя, за исключением, возможно, случаев серьезного исправления безопасности.

Тем не менее, если вам нужен надежный процесс сборки с использованием pip, вам действительно нужно отразить все пакеты, на которые вы полагаетесь, локально. Это не сложно сделать; вы можете использовать опцию --download pip (или ваш существующий кэш pip), чтобы получить все tar-архивы пакетов, а затем просто сбросить их в проиндексированную веб-директорию и использовать --find-links в вашем файле требований для указания там pip плюс --no-index, чтобы запретить использование PyPI).

0 голосов
/ 07 января 2011

Указанные файлы все еще можно найти: просто укажите прямой URL вместо имени пакета:

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

например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...