Posso forçar o pip a reinstalar a versão atual?

507

Eu me deparei com situações em que uma versão atual de um pacote parece não estar funcionando e requer reinstalação. Mas pip install -Unão tocará em um pacote que já esteja atualizado. Vejo como forçar uma reinstalação, primeiro desinstalando (com pip uninstall) e depois instalando, mas existe uma maneira de simplesmente forçar uma "atualização" para uma versão nominal atual em uma única etapa?

orome
fonte
para aqueles que procuram re-instalar pip auto (se ele parou de funcionar por algum motivo;)), a resposta pode ser encontrada em este SO Q & A
nsof

Respostas:

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

Ao atualizar, reinstale todos os pacotes, mesmo que já estejam atualizados.

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

Ignore os pacotes instalados (reinstalando).

KGo
fonte
1
Alguma maneira de forçar uma substituição ao usar --target = flag? nada disso funcionou para mim. Eu recebo o caminho de destino já existe erro.
Radtek
@KeeganQuinn, você acha que é isso que Karan quis dizer com "Ao atualizar" ...? Eu suponho que sim. Mas seu esclarecimento certamente me ajuda.
The Red Pea
E se eu quiser fazer uma alteração na tirolesa instalada no processo de pip install pipeline-livee simplesmente pegar minha alteração na tirolesa?
gseattle
Incluindo --upgrade, quando --force-reinstallestá a ser utilizado não deve ser necessário a partir de semente 10,0, FYI: github.com/pypa/pip/issues/1139
cjerdonek
1
@mrgloom O using cachedjusto significa que ele usa arquivos de origem que foram armazenados em cache na última instalação. Para forçar o download novamente, use a --no-cache-dirbandeira.
Lcnittl 25/07/19
181

Você pode querer ter todas as três opções: --upgradee --force-reinstallgarante a reinstalação, --no-depsevitando a reinstalação de dependências.

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

Caso contrário, você poderá encontrar o problema de que o pip começa a recompilar o Numpy ou outros pacotes grandes.

Finn Årup Nielsen
fonte
1
Isso também funciona para instalações offline, enquanto a resposta exceto não.
precisa saber é o seguinte
4
Esta é uma solução melhor para pacotes com um grande número de dependências que não precisam ser reinstaladas.
Assil Ksiksi
1
sudofoi crucial no meu caso.
Mrgloom 19/08/19
1
Por que precisamos --upgradequando usamos --force-reinstall?
mrgloom
@ FinnÅrupNielsen por que deveria atualizar a versão atual? como eu entendo aqui, queremos reinstalar o pacote. E se o <package-name>==<package-version>formato for usado?
precisa saber é
33

Se você deseja reinstalar os pacotes especificados em um arquivo requirements.txt, sem atualizar, apenas reinstale as versões específicas especificadas no arquivo requirements.txt:

pip install -r requirements.txt --ignore-installed
Davy
fonte
29
--force-reinstall

parece não forçar a reinstalação usando python2.7 com pip-1.5

Eu tive que usar

--no-deps --ignore-installed
anemes
fonte
20
Você deve especificar --upgradealém de --force-reinstallou não terá nenhum efeito.
Keegan Quinn
6

Se você tiver um arquivo de texto com muitos pacotes, precisará adicionar o sinalizador -r

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

No caso de você precisar forçar a reinstalação do próprio pip , você pode:

python -m pip install --upgrade --force-reinstall pip
Jorge Cribb
fonte