Puis-je forcer pip à réinstaller la version actuelle?

507

J'ai rencontré des situations où une version actuelle d'un package ne semble pas fonctionner et nécessite une réinstallation. Mais pip install -Uje ne toucherai pas à un package déjà à jour. Je vois comment forcer une réinstallation en désinstallant d'abord (avec pip uninstall) puis en installant, mais existe-t-il un moyen de forcer simplement une "mise à jour" vers une version nominalement actuelle en une seule étape?

orome
la source
pour ceux qui cherchent à réinstaller pip lui-même (s'il a cessé de fonctionner pour une raison quelconque;)), la réponse peut être trouvée dans ce SO q & a
ns du

Réponses:

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

Lors de la mise à niveau, réinstallez tous les packages même s'ils sont déjà à jour.

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

Ignorez les packages installés (réinstallez à la place).

KGo
la source
1
Est-il possible de forcer l'écrasement lors de l'utilisation de --target = flag? rien de tout cela n'a fonctionné pour moi. J'obtiens le chemin de destination existe déjà erreur.
radtek
@KeeganQuinn pensez-vous que c'est ce que Karan voulait dire par "Lors de la mise à niveau" ...? Je suppose. Mais votre clarification m'aide certainement.
The Red Pea
Que se passe-t-il si je souhaite effectuer un changement de tyrolienne qui est installé dans le processus de pip install pipeline-live, et simplement récupérer mon changement de tyrolienne?
gseattle
Y compris --upgradequand --force-reinstallest utilisé ne devrait pas être nécessaire à partir du pip 10.0, FYI: github.com/pypa/pip/issues/1139
cjerdonek
1
@mrgloom Le using cachedsignifie simplement qu'il utilise des fichiers source qui ont été mis en cache lors de la dernière installation. Pour forcer le re-téléchargement, utilisez l' --no-cache-dirindicateur.
lcnittl
181

Vous voudrez peut-être avoir les trois options: --upgradeet --force-reinstallassure la réinstallation, tout en --no-depsévitant de réinstaller les dépendances.

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

Sinon, vous pourriez rencontrer le problème que pip commence à recompiler Numpy ou d'autres gros packages.

Finn Årup Nielsen
la source
1
Cela fonctionne également pour les installations hors ligne, contrairement à la réponse exceptée.
orodbhen
4
Il s'agit d'une meilleure solution pour les packages avec un grand nombre de dépendances qui n'ont pas besoin d'être réinstallées.
Assil Ksiksi
1
sudoétait crucial dans mon cas.
mrgloom
1
Pourquoi avons-nous besoin --upgradelorsque nous utilisons --force-reinstall?
mrgloom
@ FinnÅrupNielsen pourquoi devrait-il mettre à jour la version actuelle? si je comprends bien ici, nous voulons réinstaller le package. Et si le <package-name>==<package-version>format est utilisé?
mrgloom
33

Si vous souhaitez réinstaller les packages spécifiés dans un fichier requirements.txt, sans mise à niveau, réinstallez simplement les versions spécifiques spécifiées dans le fichier requirements.txt:

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

ne semble pas forcer la réinstallation à l'aide de python2.7 avec pip-1.5

J'ai dû utiliser

--no-deps --ignore-installed
anèmes
la source
20
Vous devez spécifier --upgradeen plus --force-reinstallou cela n'aura aucun effet.
Keegan Quinn, le
6

Si vous avez un fichier texte avec de nombreux packages, vous devez ajouter l' indicateur -r

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

Dans le cas où vous devez forcer la réinstallation de pip lui-même, vous pouvez faire:

python -m pip install --upgrade --force-reinstall pip
Jorge Cribb
la source