Comment puis-je mettre à niveau Python vers 2.7.9 sur Ubuntu 14.4?

32

Ubuntu 14.4 est livré avec Python 2.7.6 intégré, mais je voudrais le mettre à niveau vers 2.7.9 (il dispose des fonctionnalités de sécurité que je veux).

Est-ce que c'est possible? Si oui, comment cela peut-il être réalisé?

Moomima
la source
2
La version amont de python 2.7 sera toujours 2.7.6. Vérifiez le numéro de version de la distribution, puis consultez le journal des modifications ( packages.ubuntu.com/source/trusty/python2.7 ) pour voir si ces mises à jour de sécurité ont été rétroportées.
Roger Sherman

Réponses:

16

Vous pouvez utiliser pyenv:

 git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

Puis ajouter

   #   for PyEnv
  export PYENV_ROOT="$HOME/.pyenv"
  export PATH="$HOME/.pyenv/bin:$PATH"
  export PATH="$HOME/.pyenv/shims:$PATH"
  eval "$(pyenv init -)"

Dans .bash_profile, vous pourrez voir la version de python que vous voulez installer ou mettre à jour:

pyenv install --list

veux python 2.7.10? tu peux essayer:

 pyenv virtualenv 2.7.10

J'espère que ça peut t'aider.

Jeremy Anifacc
la source
Pour Ubuntu, ce bloc fonctionne mieux dans ~ / .bashrc plutôt que ~ / .bash_profile. Puis exécutez exec "$ SHELL".
Brendan
31

ppa: fkrull / deadsnakes est la dernière version de python2.7

sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get upgrade

Il mettra à niveau python à 2.7.10

Comme
la source
1
essayé dans les machines de développement (tous les ordinateurs 14.04), très bonne alternative.
Yonsy Solis
Mais j'ai trouvé que ce n'était pas compatible avec mon application.
Comme
4
Attention, le fait de s’appuyer sur un paquet non officiel, et / ou sur un PPA, en particulier pour des tâches aussi fondamentales que Python dans Ubuntu, contourne d’importants processus de sécurité et peut entraîner de nombreux problèmes. Certains packages dépendent explicitement des packages ou versions officielles. Au lieu de cela, vous voudrez peut-être utiliser virtualenv avec une version plus récente de python uniquement pour les applications pour lesquelles vous en avez besoin. Voir aussi Mettre à niveau vers Python 2.7.9 sur Ubuntu 14.04 LTS et créer votre propre paquet .deb pour le déploiement - Renoir Boulanger
nealmcb le
Bien. Vous avez raison. J'ai abandonné mon approche il y a plusieurs mois.
Comme le
3
Cela mettra à niveau tous vos paquets.
mpen
10

Je ne suis pas fan des réponses précédentes suggérant l'installation à partir de différents PPA. Aucun manque de respect voulu, mais je ne connais pas les personnes qui les ont construits et je ne sais pas du tout ce qui pourrait y être Dans tout environnement où une personne doit répondre à un professionnel de la sécurité, cette pratique serait mal vue.

Je viens de constater que le téléchargement de la version 2.7.9 à partir des sources et l’installation côte à côte étaient un bon début. Ce blog génial a couvert les étapes. (recréé ici pour se conformer aux directives de débordement de pile)

wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar xfz Python-2.7.9.tgz
cd Python-2.7.9/
./configure --prefix /usr/local/lib/python2.7.9
make
make install

Tester si la version fonctionne

/usr/local/lib/python2.7.9/bin/python -V
Python 2.7.9

Maintenant que j'ai la version 2.7.9 installée, je peux l'appeler directement ou créer un lien symbolique depuis l'endroit où je veux. (ou copiez-le dans un fichier virtuel, etc.)

Et notez que je suis arrivé ici après avoir reçu des avertissements non sécurisés sur la plate-forme et des avertissements SNI manquants. Ce qui m'a conduit ici . J'imagine que beaucoup de gens trouvent cette question par le même chemin. Et si c'est pour cela que vous êtes ici, ce bout de code pourrait vous être utile aussi

pip install urllib3[secure]
Jorfus
la source
C'est en fait la meilleure réponse, surtout si vous utilisez déjà virtualenv. La raison pour laquelle j’ai le sentiment que c’est mieux, c’est que cela ne dépend pas d’applications ou de référentiels tiers qui pourraient casser autre chose.
Andre
3

Voici le nouveau référentiel tiers mis à niveau:

sudo add-apt-repository ppa:jonathonf/python-2.7
sudo apt-get update
sudo apt-get install python2.7
python --version
Arbabnazar
la source
2

Vous pouvez aller à python.org et télécharger le fichier .tar.gz compiler et l’installer. Vous aurez besoin des outils de base pour compiler le code source. Je ne me souviens pas si le paquet "build-essential" suffira, mais essayez-le.

jaumzors
la source
2

La version que vous voulez est déjà dans Ubuntu, dans Vivid (pré) version. Si vous êtes courageux, vous pouvez mélanger des versions et installer la version de Python de Vivid sous Trusty. Vous trouverez ci-dessous une solution générique qui fonctionne sur certains paquets. Je ne peux pas la garantir avec Python. Les chances sont ~ 50/50 que cela réussira. Si toutefois vous trouvez un référentiel de backports approprié pour 14.04 avec la version de votre package requis, il devrait alors être un meilleur choix.

  1. Vous avez la ligne "... fidèle principale" dans votre /etc/apt/sources.list, copiez-la deux fois, en remplaçant "digne de confiance" par "utopique" et "vif".

  2. Courez apt-get updateet ensuite apt-get -t vivid install python2.7. Passez en revue les dépendances installées avant de continuer. Abandonnez la mise à niveau lorsque vous suspectez un dommage à votre système (paquets importants supprimés, etc.).

  3. Supprimer ou hacher les deux lignes de /etc/apt/sources.list.

Ne le faites jamais sur des machines de production. Faites une sauvegarde de votre système d'exploitation et préparez le support de démarrage pour le restaurer si nécessaire. Attendez-vous à des problèmes sur les mises à niveau. Tu as été prévenu.

sam_pan_mariusz
la source