Comment utiliser la dernière version de Python 2.7.x «The Right Way» sur Ubuntu 12.04 LTS?

28

Mon projet doit rester à jour sur les versions de Python, mais 12.04LTS est actuellement bloqué sur 2.7.3, même si 2.7.5 est sorti maintenant. Existe-t-il un moyen de rester plus à jour sans compiler manuellement? Nous devons rester sur une installation basée sur des packages pour Python. Quelle est la "bonne" façon de gérer cela?

Merci!

Volonté
la source

Réponses:

14

EDIT: * Comme @Anthon l'a souligné dans les commentaires, ce PPA n'inclut pas Python 2.7 pour Ubuntu 12.04 (Precise). Voir la réponse de funky-future ci - dessous , qui, je ne pense pas, existait lorsque j'ai répondu à l'origine.

Le moyen "Ubuntu" préféré pour traiter les paquets non inclus dans leur univers par défaut est d'utiliser un PPA (référentiel tiers), plutôt que de compiler manuellement. Vous conservez ainsi les avantages de la gestion des packages, des mises à jour et de la résolution des dépendances.

Cependant, les référentiels tiers ne sont PAS officiellement pris en charge, si cela fait partie de vos besoins.

Le DeadSnakes (obtenez-le) PPA maintient les versions de Python non incluses dans la gestion des packages de systèmes.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

Vous pouvez en savoir plus sur ce PPA ici .

Cependant, dans votre cas, cela n'inclut pas Python 2.7, car DeadSnakes ne fournit que des versions majeures non incluses et pas des versions ponctuelles. Comme Ubuntu contient déjà 2.7 pour Ubuntu 12.04, DeadSnakes ne le fournira pas.

Il peut être préférable de faire valoir que vous ne devez pas utiliser le package natif avec Ubuntu dans ce cas. Voir cet extrait de DeadSnakes;

Using third-party modules packaged for Debian or Ubuntu with the Python
interpreters from this repository is a bit of a mixed bag. For Python 2, Python
modules from the official repositories will not work, as a consequence of how
Python packaging works in Debian. For Python 3 on the other hand, all
pure-Python module packages at least should be available; compiled extension
modules will not work however.

In general, you're better off installing Python modules using the common Python
packaging tools rather than the system package manager. For an introduction into
the Python packaging ecosystem and its tools, refer to;
    http://guide.python-distribute.org/

A few of these tools might also be provided in this repository as a convenience.

Si vous êtes absolument tenu d'utiliser la gestion des packages des systèmes d'exploitation et que vous ne pouvez pas passer à une version différente d'Ubuntu avec un package fourni par DeadSnakes, ou en mode natif, il ne vous reste que deux options, comme je le vois.

  1. Vous pouvez demander un backport de Python 2.7.5 vers Ubuntu 12.04.
  2. Vous pouvez créer votre propre PPA avec la version de Python dont vous avez besoin.

note latérale : AskUbuntu est un meilleur StackExchange pour publier des trucs comme celui-ci, que SuperUser en général.

krondor
la source
Parfait merci! D'après votre expérience, DeadSnakes est-il bien entretenu?
Will
2
Oui, il semble être populaire et bien entretenu. J'aurais peu de réserves à l'utiliser.
krondor
1
Il n'a que 2.7.4 pour 10.04 pas pour 12.04
Anthon
1
@Anthon tu as raison, je ne l'ai pas remarqué. DeadSnakes ne remplacera pas une version majeure, donc comme Ubuntu intègre déjà Python 2.7, Deadsnakes ne fournira pas de versions ponctuelles pour cette série. Ils fournissent plutôt 3.3 pour Precise. Cela n'aidera pas l'OP dans ce cas.
krondor
Le 14.04, j'ai dû utiliser ppa:fkrull/deadsnakes-python2.7(notez le suffixe)
Craig Younkins
37

Felix Krull a également maintenu (comme maintenant non entretenu) un PPA avec la dernière version de Python 2.7 pour Ubuntu Precise, Trusty et Utopic. Vous pouvez utiliser le même processus comme décrit Krondor, mais au lieu d' utiliser ou additionaly cette PPA: ppa:fkrull/deadsnakes-python2.7.

sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7
sudo apt-get update
sudo apt-get install python2.7
funky-future
la source
Ce devrait être la réponse acceptée.
cr8ivecodesmith
1
Il a maintenant un avertissement «discontinué», mais fonctionne bien pour les machines qui exécutent toujours des versions Ubuntu plus anciennes. Le PPA fournit des versions 2.7.12-1~precise1, 2.7.12-1~trusty1et 2.7.10-0+utopic1(pour 12,04, 14,04 et 14,10).
mivk
5
Notez juste que frull / deadsnakes-python2.7 ppa n'est plus disponible. Pour les dernières versions de Python 2.7 (comme 2.7.13), essayez d'utiliser jonathonf / python-2.7 ppa.
socrates
avertissement - cela m'a causé des problèmes lors de la mise à niveau des distributions (12 -> 14) .. Je me suis retrouvé avec un python vraiment mort .. Assurez-vous d'annuler ce ppa avant la mise à niveau ..
dermen
c'est vrai pour toute mise à jour de distribution et ppas.
funky-future