Czy mogę zmusić PIP do ponownego zainstalowania bieżącej wersji?


507

Natknąłem się na sytuacje, w których obecna wersja pakietu wydaje się nie działać i wymaga ponownej instalacji. Ale pip install -Unie dotknie pakietu, który jest już aktualny. Widzę, jak wymusić ponowną instalację, najpierw odinstalowując (z pip uninstall), a następnie instalując, ale czy istnieje sposób, aby po prostu wymusić „aktualizację” do nominalnie aktualnej wersji w jednym kroku?


dla tych, którzy chcą ponownie zainstalować PIP It samodzielnie (jeśli z jakiegoś powodu przestał działać;)), odpowiedź można znaleźć w tym SO
pytania

Odpowiedzi:


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

Podczas aktualizacji zainstaluj ponownie wszystkie pakiety, nawet jeśli są już aktualne.

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

Zignoruj ​​zainstalowane pakiety (zamiast tego ponowna instalacja).


1
W jakikolwiek sposób wymusić zastąpienie przy użyciu --target = flaga? żaden z nich nie działał dla mnie. Rozumiem, że ścieżka docelowa już istnieje błąd.
radtek

@KeeganQuinn, czy myślisz, że właśnie to Karan miał na myśli mówiąc „Podczas aktualizacji” ...? Tak przypuszczam. Ale twoje wyjaśnienie z pewnością mi pomaga.
The Red Pea

Co jeśli chcę dokonać zmiany w linii zipline, która jest instalowana w trakcie pip install pipeline-live, i po prostu odebrać swoją zmianę w zipline?
gseattle

Włączenie, --upgradekiedy --force-reinstalljest używany, nie powinno być potrzebne od pip 10.0, FYI: github.com/pypa/pip/issues/1139
cjerdonek

1
@mrgloom using cachedOznacza to, że używa plików źródłowych, które były buforowane przy ostatniej instalacji. Aby wymusić ponowne pobranie, użyj --no-cache-dirflagi.
lcnittl

181

Możesz mieć wszystkie trzy opcje: --upgradei --force-reinstallzapewnia ponowną instalację, --no-depsunikając przy tym ponownych zależności.

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

W przeciwnym razie możesz napotkać problem polegający na tym, że pip zaczyna rekompilować Numpy lub inne duże pakiety.


1
Działa to również w przypadku instalacji offline, podczas gdy wyjątek nie.
orodbhen

4
Jest to lepsze rozwiązanie dla pakietów z dużą liczbą zależności, które nie wymagają ponownej instalacji.
Assil Ksiksi

1
sudobyło w moim przypadku kluczowe.
mrgloom

1
Dlaczego potrzebujemy, --upgradekiedy korzystamy --force-reinstall?
mrgloom

@ FinnÅrupNielsen, dlaczego powinien zaktualizować bieżącą wersję? jak rozumiem tutaj, chcemy ponownie zainstalować pakiet. Co jeśli <package-name>==<package-version>używany jest format?
mrgloom

33

Jeśli chcesz ponownie zainstalować pakiety określone w pliku wymagania.txt, bez aktualizacji, po prostu zainstaluj ponownie określone wersje określone w pliku wymagania.txt:

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

29
--force-reinstall

nie wydaje się wymuszać ponownej instalacji przy użyciu python2.7 z pip-1.5

Musiałem użyć

--no-deps --ignore-installed

20
Musisz podać --upgradedodatkowo --force-reinstall, inaczej nie przyniesie to żadnego efektu.
Keegan Quinn

6

Jeśli masz plik tekstowy z dużą ilością pakietów, musisz dodać flagę -r

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

5

W przypadku, gdy musisz wymusić ponowną instalację samego pipa , możesz:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.