Comment mettre à jour un paquet Python?

Je cours Ubuntu 9: 10 et un paquet appelé M2Crypto est installé (version 0.19.1). J'ai besoin de télécharger, de construire et d'installer la dernière version du paquet M2Crypto (0.20.2).

Le paquet 0.19.1 contient des fichiers dans un certain nombre d'emplacements, y compris (/usr/share/pyshared et /usr/lib/pymodules.python2.6).

Comment puis-je désinstaller complètement la version 0.19.1 de mon système avant d'installer 0.20.2?

152
demandé sur thompson 2011-03-03 19:40:11

9 réponses

Vous pouvez regarder dans un gestionnaire de paquets Python comme pip . Si vous ne voulez pas utiliser un gestionnaire de paquets Python, vous devriez pouvoir télécharger M2Crypto et construire / compiler / installer sur l'ancienne installation.

38
répondu Jeremy Whitlock 2017-03-22 22:38:35

La meilleure façon que j'ai trouvée est d'exécuter cette commande à partir du terminal

sudo pip install [package_name] --upgrade

sudo demandera d'entrer votre mot de passe root pour confirmer l'action.

323
répondu princelySid 2017-07-25 12:14:06

Pour mettre à jour automatiquement tous les paquets obsolètes (qui ont été installés à l'aide de pip), exécutez simplement le script ci-dessous,

pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

Ici, {[3] } listera tous les paquets obsolètes et ensuite nous le dirigerons vers awk, de sorte qu'il n'imprimera que les noms. Ensuite, le $(...) en fera une variable et ensuite, tout se fera automatiquement. Assurez-vous que vous avez les autorisations. (Il suffit de mettre sudo avant pip si vous êtes confus) J'écrirais un script nommé, pip-upgrade Le code est ci-dessous,

#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

Puis utilisez les lignes de script suivantes pour le préparer:

sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/

Ensuite, appuyez simplement sur pip-upgrade et le tour est joué!

31
répondu Fahim Ferdous 2017-08-28 11:06:34
  1. Via l'invite de commande windows, exécutez: pip list --outdated Vous obtiendrez la liste des paquets obsolètes.
  2. Exécuter: pip install [package] --upgrade Il mettra à jour le [package] et désinstallera la version précédente.

Pour mettre à jour pip:

Py -m pip install --mise à niveau de pep

Encore une fois, cela désinstallera la version précédente de pip et installera la dernière version de pip.

20
répondu Hossain Mahmood Tuhin 2018-08-28 06:23:11
  • Méthode 1: Mise à niveau manuellement un par un

pip install package_name -U
  • Méthode 2: Mise à niveau tout à la fois (risque élevé de restauration si un paquet ne parvient pas à mettre à niveau

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
  • Méthode 3: Mise À Niveau une par une en utilisant loop

for i in  $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done
17
répondu Donghua Luo 2018-03-31 05:38:17

Je pense que le meilleur One-liner est:

pip install --upgrade <package>==<version>
7
répondu Stuart Mclean 2017-12-05 20:12:31

Comment le paquet a-t-il été installé à l'origine? Si c'était via apt, vous pourriez simplement être capable de faire apt-get remove python-m2crypto

Si vous l'avez installé via easy_install, je suis sûr que le seul moyen est de simplement vider les fichiers sous lib, shared,etc..

Ma recommandation à l'avenir? Utilisez quelque chose comme pip pour installer vos paquets. De plus, vous pouvez rechercher quelque chose appelé virtualenv afin que vos paquets soient stockés par environnement, plutôt que uniquement sur racine.

Avec pip, c'est assez facile:

pip install m2crypto

Mais vous pouvez également installer à partir de git, svn, etc repos avec la bonne adresse. Tout cela est expliqué dans la documentation pip

4
répondu Bartek 2011-03-03 16:44:54

Récupère tous les paquets obsolètes et crée un fichier batch avec les éléments suivants commande pip install xxx --upgrade pour chaque paquet obsolète

2
répondu Leslie Lespes 2017-10-21 15:17:01
pip install -U $(pip list --outdated | awk 'NR>2 {print $1}')
2
répondu Vidyadhar 2018-03-31 05:37:21