Могу ли я заставить pip переустановить текущую версию?


507

Я сталкивался с ситуациями, когда текущая версия пакета не работает и требует переустановки. Но pip install -Uне буду касаться пакета, который уже обновлен. Я вижу, как принудительно выполнить переустановку, сначала удалив (с помощью pip uninstall), а затем установив, но есть ли способ просто принудительно «обновить» до номинально текущей версии за один шаг?


для тех, кто хочет переустановить pip it self (если по какой-то причине он перестал работать;)), ответ можно найти в этом SO q & a
ns от

Ответы:


745
pip install --upgrade --force-reinstall <package>

При обновлении переустановите все пакеты, даже если они уже обновлены.

pip install -I <package>
pip install --ignore-installed <package>

Игнорировать установленные пакеты (вместо этого переустановить).


1
Любой способ вызвать перезапись при использовании --target = flag? ни один из них не работал для меня. Я получаю путь назначения уже существует ошибка.
Радтек

@KeeganQuinn Как вы думаете, это то, что Каран имел в виду под "При обновлении" ...? Я так полагаю. Но ваши разъяснения, безусловно, помогают мне.
Красный горох

Что если я захочу внести изменения в zipline, который устанавливается в процессе pip install pipeline-live, и просто получить мои изменения в zipline?
gseattle

В том числе, --upgradeкогда --force-reinstallиспользуется, в пипс 10.0 не требуется, к вашему сведению: github.com/pypa/pip/issues/1139
cjerdonek

1
@mrgloom The using cachedjust означает, что он использует исходные файлы, которые были кэшированы при последней установке. Для принудительной повторной загрузки используйте --no-cache-dirфлаг.
lcnittl

181

Возможно, вы захотите иметь все три варианта: --upgradeи --force-reinstallобеспечивает переустановку, --no-depsизбегая переустановки зависимостей.

$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>

В противном случае вы можете столкнуться с проблемой, что pip начинает перекомпилировать Numpy или другие большие пакеты.


1
Это также работает для автономной установки, в то время как исключенный ответ - нет.
orodbhen

4
Это лучшее решение для пакетов с большим количеством зависимостей, которые не нужно переустанавливать.
Ассил Ксикси

1
sudoбыло решающим в моем случае.
mrgloom

1
Зачем нам нужно, --upgradeкогда мы используем --force-reinstall?
mrgloom

@ FinnÅrupNielsen, почему он должен обновить текущую версию? как я понимаю, здесь мы хотим переустановить пакет. Что делать, если <package-name>==<package-version>используется формат?
mrgloom

33

Если вы хотите переустановить пакеты, указанные в файле needs.txt, без обновления, просто переустановите конкретные версии, указанные в файле needs.txt:

pip install -r requirements.txt --ignore-installed

29
--force-reinstall

не вызывает принудительную переустановку с использованием python2.7 с pip-1.5

Я должен был использовать

--no-deps --ignore-installed

20
Вы должны указать --upgradeв дополнение к --force-reinstall, или это не будет иметь никакого эффекта.
Киган Куинн

6

Если у вас есть текстовый файл с множеством пакетов, вам нужно добавить флаг -r

pip install --upgrade --no-deps --force-reinstall -r requirements.txt

5

В случае, если вам нужно принудительно переустановить сам pip , вы можете сделать:

python -m pip install --upgrade --force-reinstall pip

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.