2010-09-28 3 views
3

При работе Пипа с requirements.txt файлом, который имеет фиксированные версии, мы получим следующее сообщение об ошибке (или аналогичных):Использование Pip, как мне заставить обновить не обновленные пакеты?

VersionConflict: (solrpy 0.9.1 
(.../lib/python2.6/site-packages/solrpy-0.9.1-py2.6.egg), 
    Requirement.parse('solrpy==0.9.3')) 

потому что версия конфликты. Использование pip install -U -r requirements.txt исправляет это, но это также заставляет нас загружать все пакеты снова. Одна из приятных вещей о Пипе заключается в том, что он будет знать, что установлено, а не повторно загружать/устанавливать.

Есть ли способ обойти это? Я предполагаю, что я хочу, это «мягкое обновление», где он только обновляет пакеты, если они конфликтуют.

+0

Да, -U в настоящее время повторно загружает все установленные пакеты. Это ошибка, и она должна быть исправлена. В несвязанной заметке, если вы видите ошибку VersionConflict, она указывает, что вы используете версию пипса, которая составляет не менее полугода. Это древнее в терминах; Я настоятельно рекомендую не использовать пакеты ОС для pip, но получить самую последнюю версию напрямую из PyPI. –

+0

Спасибо Карлу, это полезно. Стоит ли добавлять +1 к отчету об ошибке, упомянутому ниже? –

ответ

-1

Обновление solrpy пакет отдельно:

pip install -U --no-deps solrpy 

Я думаю, что вы, вероятно, можно опустить параметр --no-deps, но вы можете захотеть попробовать это первый, и бывший второй, если у вас есть проблемы:

pip install -U solrpy 

Я не верю, что есть способ просто обновить пакет с более высокой версией, уже установленный из файла requirements.txt.