Mise à jour de Python sur le système Ubuntu


78

Je souhaite mettre à jour la version Python sur ma machine Linux, mais la seule façon de le faire consiste à désinstaller la version actuelle et à installer la nouvelle. Mon système est déjà à jour (je l'ai mis à jour hier). Je voulais savoir s’il existe un moyen de mettre à jour un programme spécifique à partir de la ligne de commande, par exemple sudo apt-get update <program-name>. Je sais que cette commande n'existe pas, mais j'espère que quelque chose d'équivalent existe.


Si votre système est à jour, il en va de même pour le Python (selon vos référentiels). Ai-je tort?
cYrus

Réponses:


64

Comme d'autres l'ont déjà noté, nu sudo apt-get install packageinstallera la dernière version disponible en remplaçant l'ancienne si nécessaire.

Mais avec certains logiciels (parmi lesquels Python), la situation est quelque peu différente. Certaines versions majeures, très différentes et incompatibles, ont leurs propres paquets. Par exemple, Python 2.6 , Python 2.7 , Python 3.1 vivent tous dans des packages distincts sur Ubuntu.

Le fait qu’une des politiques d’Ubuntu consiste à utiliser largement Python pour l’écriture de logiciels pour les utilisateurs finaux est particulièrement important. Donc, en fait, une partie assez importante du système est écrite en Python. Pour le moment, le code fonctionne sur Python 2.6 - cette version est donc la version par défaut lors de l'installation. et le code ne fonctionnera pas facilement, disons, Python 2.7 - car des incompatibilités existent. Pour basculer le système vers Python 2.7, vous devez effectuer un travail consistant à mettre à jour et à tester à nouveau tous les scripts. Cela ne peut pas être fait facilement. En d'autres termes, vous ne pouvez pas simplement "basculer" votre système vers Python 2.7 et supprimer l'ancienne version.

Mais. Si vous ne vous souciez pas des engrenages sophistiqués de votre système et que vous avez simplement besoin d'un nouveau Python, ne voyez aucun obstacle. Allez et sudo apt-get install python3codez bravement pour 3.x Python; Rappelez-vous simplement de lancer vos scripts avec python3et utilisez la #!/usr/bin/env python3ligne shebang.


6
Beaucoup de détails sur les coulisses.
efficienceIsBliss

16
sudo apt-get install python 3.3.3

c'est pour python (3.3.3) pour une version différente, le numéro de version correspondant doit être utilisé.


4
Je pense que l'espace entre python et version ne devrait pas être là. sudo apt-get install python3.6a fonctionné pour moi, mais n'affecte en aucune façon Python 3.5.
GUI Junkie

sudo apt-get install python 3.6.1 > Note, selecting 'libghc-unix-time-dev-0.3.6-1b8cf' for regex '3.6.1' ... Les arguments séparés indiquent qu'il est possible d'installer plusieurs paquets
Clancy Hood

3
Après avoir installé mon numéro de version python est le même? Quelle pourrait être la raison?
Ramesh Pareek

J'ai utilisé cette méthode, mais je ne trouve pas où elle a été installée (c.-à-d. Comment ouvrir un shell 3.7). @RameshPareek cela pourrait aussi être votre problème. ne semble pas être dans / usr / bin. python is already the newest version (2.7.12-1~16.04). python set to manually installed.des idées?
Fan numéro un de Bjorks

10
sudo apt-get install python3.6

Cela installe Python 3 sous Linux le long de Python 2. Pour accéder à Python 3, entrez-le après avoir ouvert le terminal.

python3

2
Cela duplique une autre réponse et n’ajoute aucun nouveau contenu. S'il vous plaît, ne postez pas de réponse sauf si vous avez réellement quelque chose de nouveau à contribuer.
DavidPostill

3
désolé je voulais juste écrire la commande pour obtenir le nouveau.
G-Ox7cd

6
Si je cours, je reçoisE: Unable to locate package python3.6 E: Couldn't find any package by glob 'python3.6' E: Couldn't find any package by regex 'python3.6'
Kajsa

1
sudo add-apt-repository ppa: deadsnakes / ppa -y && sudo apt-get mise à jour
ski_squaw le

E: Unable to locate package python3.6
Dims

4

Vous êtes proche en pensant à une commande comme sudo apt-get update(qui est une commande réelle, mais ne fait pas ce que vous voulez.)

Pour mettre à niveau Python, et tout ce que vous avez installé, utilisez la commande suivante:

sudo apt-get upgrade

Merci, mais je connaissais déjà la commande de mise à jour, c'est pourquoi j'ai signalé le fait que mon système est déjà à jour. J'espérais trouver une commande pouvant être ciblée sur des applications spécifiques.
efficienceIsBliss

apt ne mettrait rien à jour, donc ça ne changerait rien; p
Journeyman Geek

Le PO veut mettre à jour python spécifiquement . Leur dire de mettre à jour tous leurs paquets est un mauvais conseil.
Przemek D

3

De notre site soeur: https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

Chacune de ces commandes est mise à jour lors de l'installation, ce qui devrait fonctionner dans de nombreux cas, mais ne correspond peut-être pas à ce que vous recherchez dans un cas spécifique.

Si vous voulez seulement mettre à jour un paquet spécifique ET seulement s'il est déjà installé, utilisez la commande suivante:

sudo apt-get install --only-upgrade packagename

3

Si vous souhaitez mettre à jour uniquement une version mineure d'un paquet python tel que 2.7.11+ à 2.7.12, faites sudo apt-get install python2.7-le à votre place.


2

pyenv peut être une bonne option pour vous: https://github.com/yyuu/pyenv


En ce qui concerne la réponse de @ ulidtko , une alternative possible de remplacer le python du système tout à fait peut - être utiliser un environnement isolé avec votre version de python désirée. Ceci est similaire à un "environnement virtuel", mais pour Python lui-même. Je l'ai déjà utilisé dans le passé pour des projets hérités fonctionnant sous Python 2.6, ainsi que lors de la mise à niveau d'une version héritée de python vers python3.


Je ne connais pas bien la région, mais pourriez-vous expliquer en quoi cela répond à la question et résout le problème?
Ben N

1
En ce qui concerne la réponse de @ ulidtko ( superuser.com/a/241903/152143 ), une alternative possible au remplacement du système python peut être d'utiliser un environnement isolé avec la version python souhaitée. Ceci est similaire à un "environnement virtuel", mais pour Python lui-même. Je l'ai déjà utilisé dans le passé pour des projets hérités fonctionnant sous Python 2.6, ainsi que lors de la mise à niveau d'une version héritée de python vers python3.
nicefinly

1
apt-get install python

Je crois que cela devrait fonctionner. Vous devrez évidemment changer 'python' pour qu'il corresponde bien au nom de paquet approprié dans votre référentiel.


1

Comme nous le savons tous, Python est fourni avec la version 3.5. Il est donc très simple de mettre à jour Python 2.7 (présent par défaut dans Ubuntu 16.04) vers Python 3.5.

Suivez les étapes suivantes:

  1. Terminal ouvert.
  2. Devenez utilisateur root en utilisant la commande sudo.
  3. Utilisez le code ci-dessous pour mettre à jour Python 2.7 à 3.5

    sudo apt-get install python3.5

  4. On vous demandera votre permission, puis donnez l’option Y.

  5. Attendez la fin du processus.
  6. effacer l'écran en utilisant la commande clear
  7. Vérifiez la version de python avec la commande ci-dessous.

    version python


1
Veuillez utiliser un formatage approprié à l’avenir et rester à l’écart de déclarations telles que "J'espère que cela vous aidera." ils sont juste du bruit. En répondant à la question, on suppose que vous essayez de répondre à la question avec quelque chose d’aide. Vous devriez passer en revue votre réponse, corriger les erreurs grammaticales mineures que je n'ai pas corrigées et fournir des captures d'écran du processus. J'ai corrigé le formatage pour vous cette fois, je ne le ferai plus, je crois fermement que les auteurs devraient être tenus de corriger leurs propres réponses et questions.
Ramhound

Et ce n’est pas si simple, cela ne met pas à jour correctement les liens symboliques et vous obtenez donc les versions 3.4 et 3.5 côte à côte. Python2 est généralement côte à côte avec python3 de toute façon, nous ne mettons pas à niveau Python2 vers Python3, nous migrons notre travail.
mckenzm

0

Dans le seul cas où vous exécutez une version LTS, votre python peut être retardé par une version mineure, disons 2.7.5 au lieu de 2.7.10.

Une possibilité serait de mettre à niveau le système :

  • mettre prompt=normalen/etc/update-manager/release-upgrades
  • mettre à niveau le système
    • Sur la ligne de commande, vous pouvez taper sudo do-release-upgradepour que le gestionnaire de mise à niveau effectue son travail de mise à niveau vers la dernière version (= non-LTS).
    • la solution graphique utilise le gestionnaire de mise à jour

Comme toujours lors de la mise à niveau, consultez les notes de publication , car la mise à niveau peut endommager votre système dans certains cas, voir le commentaire de @ Gino .


Mec, j'ai essayé votre monnaie et ça a cassé mon système Ubuntu 14.04! Fondamentalement, il a essayé de mettre à jour de 14.04 à Ubuntu 15 et il n’a pas été en mesure de le faire avec succès, laissant mon système dans un état à mi-chemin où la connexion graphique ne fonctionnait plus - par exemple, je me connecterais via la connexion graphique moi de revenir à la même connexion graphique. Je viens de passer la dernière heure + la réinstallation d’Ubuntu 14.04 sur ma machine pour réparer la rupture de votre prétendue solution .
Gino

@ Gino: Merci pour vos commentaires. Avez-vous consulté askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… et les notes de publication? Il y a un problème avec "le pilote fglrx d'AMD". Souhaitez-vous une autre aide?
serv-inc

Je pense que votre suggestion de contourner les vérifications de sécurité normales, permettant ainsi une mise à niveau vers une version non LTS, est périlleuse. À ce jour, je ne sais pas pourquoi la mise à niveau a échoué, car aucun message d'erreur pouvant être diagnostiqué n'a été affiché. Au lieu de cela, je me suis retrouvé avec un système qui n’était plus utilisable. Si je me souviens bien, j'ai fini par réexécuter l'installation Ubuntu avec certains paramètres capables de restaurer la plus grande partie de mon système. Et en passant, je suis un programmeur professionnel, donc je connais généralement bien les systèmes Linux.
Gino

@ Gino: Cela semble être la procédure standard pour passer de LTS à non-LTS. Cela change le niveau de notoriété des nouvelles versions. Vous pouvez définir cette option sur les versions "prises en charge" (régulières), "à long terme seulement" (LTS) ou même "rien" (pas de mises à niveau majeures). "'Pour la citation, voir askubuntu.com/questions/240160/… . Il utilise le gestionnaire de mise à niveau du système. Malheureusement, dans votre cas, la mise à niveau (par défaut) ne fonctionnait pas, ce qui peut être dû à un pilote graphique défectueux (voir les liens ci-dessus).
serv-inc
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.