2013-10-23 12 views
240

Natknąłem się na sytuacje, w których obecna wersja pakietu wydaje się nie działać i wymaga reinstalacji. Ale pip install -U nie 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 na wymuszenie "aktualizacji" do nominalnie aktualnej wersji w jednym kroku?Czy mogę wymusić pip, aby ponownie zainstalować obecną wersję?

+2

mam odwrotny problem: pip zachowuje ponownie zainstalowane zależności, które są już zainstalowane. –

Odpowiedz

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

Podczas aktualizacji należy zainstalować ponownie wszystkie pakiety, nawet jeśli są już aktualne.

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

Zignoruj ​​zainstalowane pakiety (zamiast tego zainstaluj ponownie).

+140

To działa, ale musisz także podać '--upgrade':' pip install --upgrade --force-reinstall ' –

+1

Jakikolwiek sposób wymusić nadpisanie podczas używania --target = flag? żaden z nich nie zadziałał dla mnie. Dostaję komunikat o błędzie docelowej już istnieje. – radtek

+0

@KeeganQuinn, myślisz, że to właśnie miał na myśli Karan "Kiedy ulepszasz" ...? Tak przypuszczam. Ale twoje wyjaśnienie z pewnością mi pomaga. –

20
--force-reinstall 

nie wydaje się zmusić reinstall użyciu python2.7 z pip-1,5

miałem użyć

--no-deps --ignore-installed 
+15

Musisz podać '--upgrade' oprócz' --force-reinstall' lub nie będzie to miało żadnego efektu. –

98

Możesz chcieć mieć wszystkie trzy opcje: --upgrade i --force-reinstall zapewnia ponowną instalację, podczas gdy --no-deps zapobiega ponownemu instalowaniu zależności.

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

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

12

Jeśli chcesz ponownie zainstalować pakiety podane w pliku requirements.txt bez uaktualniania, więc po prostu ponownie zainstalować konkretne wersje określone w pliku requirements.txt:

pip install -r requirements.txt --ignore-installed 
Powiązane problemy