Comment puis-je mettre à jour un paquet Python?
Je suis sur Ubuntu 9:10 et un paquet appelé M2Crypto est installé (la version est 0.19.1). J'ai besoin de télécharger, compiler et installer la version la plus récente de la M2Crypto paquet (0.20.2).
La 0.19.1 paquet contient des fichiers dans un certain nombre d'endroits, y compris les (/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?
Vous devez vous connecter pour publier un commentaire.
Vous voudrez peut-être regarder dans un paquet Python gestionnaire comme pip. Si vous ne souhaitez pas utiliser un Python gestionnaire de package, vous devez être en mesure de télécharger M2Crypto et de construire/compiler/installer par dessus l'ancienne installation.
Le meilleur moyen que j'ai trouvé est d'exécuter cette commande à partir du terminal
sudo
demandera d'entrer votre mot de passe root pour confirmer l'action.pip update
etpip upgrade
et était désespéré jusqu'à ce que j'ai vu--upgrade
ici. Pourquoi ne pas ajouter unpip upgrade
commande?sudo
n'est pas nécessaire.Pour mettre automatiquement à jour tous les paquets obsolètes (qui ont été installés à l'aide pip), il suffit d'exécuter le script ci-dessous,
Ici,
pip list --outdated
la liste de toutes les désuet paquets et ensuite nous diriger vers awk, de sorte qu'il affiche seulement les noms.Ensuite, le
$(...)
fera une variable et ensuite, tout est fait automatiquement. Assurez-vous d'avoir les autorisations. (Vient de mettresudo
avant pip si vous êtes confus)Je voudrais écrire un script nommé,
pip-upgrade
Le code est ci-dessous,
Puis utilisez les lignes suivantes de script pour le préparer:
Ensuite, il suffit de frapper
pip-upgrade
et le tour est joué!awk: cmd. line:1: { print $1 })
pip
vous obligent à utiliser le--format=legacy
option, c'est à dire,pip list --outdated --format=legacy
. Aussi pour info tout le monde: aveuglément la mise à jour de tous les modules via pip peut être très dangereux sur beaucoup de distributions Linux. Beaucoup d'entre eux de fournir des modules python via la distribution des paquets et certaines de ces distributions (RHEL) peuvent briser dur si vous avez la mise à jour de la merde ... pour ne pas mentionner le fait que si vous mettez à jour via pip, la distribution des paquets peut annuler vos modifications sur une future mise à jour.legacy
est un format non valide pour m'PEP 19.0. Alternative recommandée:pip install --upgrade --user $(pip list --outdated --user --format=freeze | cut -d'=' -f1)
(Oui, je suis terrible avec awk, d'où l'utilisation de la coupe.) Laisser--user
le cas échéant en fonction de vos besoins.pip list --outdated
Vous obtiendrez la liste des paquets obsolètes.
pip install [package] --upgrade
Il s'agit de moderniser le
[package]
et de désinstaller la version précédente.De mettre à jour pip:
Encore une fois, cela permet de désinstaller la version précédente de pip et installer la dernière version de pip.
Je pense que la meilleure ligne de commande est:
Utilisation pipupgrade!
pipupgrade vous permet de mettre à niveau votre système, locales ou des paquets à partir d'un
requirements.txt
fichier! Il a également de manière sélective les mises à niveau des paquets qui ne cassent pas le changement. Compatible avec Python2.7+, Python3.4+ et pip9+, pip10+, pip18+.NOTE: je suis l'auteur de l'outil.
Comment le package installés à l'origine? Si c'est via apt, vous pouvez simplement être en mesure de faire
apt-get remove python-m2crypto
Si vous l'avez installé via easy_install, je suis sûr que la seule façon est de simplement la corbeille les fichiers dans lib, partagées, etc..
Ma recommandation à l'avenir? Utilisez quelque chose comme pip pour installer vos paquets. En outre, vous pourriez chercher dans quelque chose appelé virtualenv si vos colis sont stockés par l'environnement, plutôt qu'uniquement sur les racines.
Avec le pip, il est assez facile:
Mais vous pouvez aussi l'installer à partir de git, svn, etc repos avec la bonne adresse. Tout est expliqué dans le pip documentation
Dans Juptyer ordinateur portable, un moyen très simple est
Donc, vous avez juste besoin de remplacer par le nom du package réel.
Obtenir tous les paquets obsolètes et créer un fichier de commandes avec les éléments suivants
les commandes
pip install xxx --mise à niveau pour chaque paquets obsolètes