Actualización de Python en el sistema Ubuntu

78

Quiero actualizar la compilación de Python en mi caja de Linux, pero la única forma en que sé cómo hacerlo es desinstalando la versión actual e instalando la nueva. Mi sistema ya está actualizado (actualicé ayer). Quería saber si hay una manera de actualizar un programa específico desde la línea de comandos, como sudo apt-get update <program-name>. Sé que este comando no existe, pero espero que haya algo equivalente.

eficienciaIsBliss
fuente
Si su sistema está actualizado, también lo está Python en su sistema (de acuerdo con sus repositorios). ¿Me equivoco?
cYrus

Respuestas:

64

Como otros ya notaron, bare sudo apt-get install packageinstalará la última versión disponible, reemplazando la anterior si es necesario.

Pero con algún software (entre los cuales se encuentra Python) la situación es algo diferente. Algunas versiones importantes, muy diferentes e incompatibles, obtienen sus propios paquetes. Por ejemplo, Python 2.6 , Python 2.7 , Python 3.1 viven en paquetes separados en Ubuntu.

De particular importancia es el hecho de que una de las políticas de Ubuntu es utilizar ampliamente Python para escribir software de usuario final. Entonces, de hecho, una parte bastante grande del sistema está escrita en Python. Por el momento, el código se ejecuta en Python 2.6, por lo que esta versión es la predeterminada en la instalación; y el código no se ejecutará fácilmente en, digamos, Python 2.7, porque existen incompatibilidades. Para cambiar el sistema a Python 2.7, se debe realizar un trabajo que consiste en actualizar y volver a probar todos los scripts. Esto no se puede hacer fácilmente; es decir, no puede simplemente "cambiar" su sistema a Python 2.7 y eliminar la versión anterior.

Pero. Si no te interesan los engranajes elegantes de tu sistema y solo necesitas un Python más nuevo, no veas obstáculos. Ir y sudo apt-get install python3codificar valientemente 3.x Python; solo recuerde iniciar sus scripts con python3y usar la #!/usr/bin/env python3línea shebang.

ulidtko
fuente
66
Gran detalle sobre el funcionamiento detrás de escena.
eficienciaIsBliss
16
sudo apt-get install python 3.3.3

esto es para python (3.3.3) para diferentes versiones, se debe usar el número de versión correspondiente.

Mrinal
fuente
44
Creo que el espacio entre python y la versión no debería estar allí. sudo apt-get install python3.6funcionó para mí, pero no afecta a Python 3.5 de ninguna manera.
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' ... Argumentos separados dicen apt para instalar varios paquetes
Clancy Campana
3
Después de instalar mi número de versión de Python es el mismo? ¿Cuál podría ser la razón?
Ramesh Pareek
Utilicé este método, pero no puedo encontrar dónde se instaló (es decir, cómo abrir un shell 3.7). @RameshPareek, este podría haber sido tu problema también. no parece estar en / usr / bin. python is already the newest version (2.7.12-1~16.04). python set to manually installed.¿algunas ideas?
Fanático número uno de Bjorks el
10
sudo apt-get install python3.6

Esto instala Python 3 en Linux junto a Python 2. Para acceder a Python 3, ingrese después de abrir el terminal.

python3
G-Ox7cd
fuente
2
Esto duplica otra respuesta y no agrega contenido nuevo. No publique una respuesta a menos que realmente tenga algo nuevo que aportar.
DavidPostill
3
lo siento, solo quería escribir el comando para obtener el nuevo.
G-Ox7cd
66
Si corro eso me saleE: 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 update
ski_squaw
E: Unable to locate package python3.6
Atenúa el
4

Estás cerca de pensar en un comando como sudo apt-get update(que es un comando real, pero no hace lo que quieres).

Para actualizar Python, y todo lo demás que haya instalado, simplemente ejecute el comando:

sudo apt-get upgrade
Wuffers
fuente
Gracias, pero ya sabía sobre el comando de actualización, por eso publiqué el hecho de que mi sistema ya está actualizado. Esperaba encontrar un comando que pudiera estar dirigido a aplicaciones específicas.
eficienciaIsBliss
apt no actualizaría nada actualizado, por lo que no haría una diferencia; p
Journeyman Geek
El OP quiere actualizar Python específicamente . Decirles que actualicen todos los paquetes que tienen es un consejo perezoso y malo.
Przemek D
3

Desde nuestro sitio hermano: https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

Cada uno de estos comandos se actualiza por instalación, lo que debería funcionar bien en muchos casos, pero podría no ser lo que está buscando en un caso específico.

Si solo desea actualizar un paquete específico Y solo si ya está instalado, utilice el comando:

sudo apt-get install --only-upgrade packagename
music2myear
fuente
3

En caso de que esté buscando actualizar solo una versión menor del paquete de Python como 2.7.11+ t0 2.7.12, entonces sudo apt-get install python2.7debe hacer por usted

Senthil Kumar Vaithiyanathan
fuente
2

pyenv puede ser una buena opción para usted: https://github.com/yyuu/pyenv


Con respecto a la respuesta de @ ulidtko , una posible alternativa para reemplazar el sistema python por completo puede ser usar un entorno aislado con la versión de python deseada. Esto es similar a un "entorno virtual", pero para Python en sí. Lo he usado en el pasado para proyectos heredados que se ejecutan en python 2.6, así como también cuando actualizo de la versión heredada de python a python3.

agradablemente
fuente
No estoy familiarizado con el área, pero ¿podría explicar cómo esto aborda la pregunta y resuelve el problema?
Ben N
1
En lo que respecta a la respuesta de @ ulidtko ( superuser.com/a/241903/152143 ), una posible alternativa a la sustitución de la pitón sistema completo puede ser el uso de un entorno aislado con tu versión pitón deseada. Esto es similar a un "entorno virtual", pero para Python en sí. Lo he usado en el pasado para proyectos heredados que se ejecutan en python 2.6, así como también cuando actualizo de la versión heredada de python a python3.
nicefinly
1
apt-get install python

Creo que esto debería funcionar. Obviamente, deberá cambiar 'python' para que coincida con el nombre del paquete apropiado en su repositorio.

mbreedlove
fuente
1

Como todos sabemos, Python viene con la versión 3.5. Por lo tanto, es muy simple actualizar Python 2.7 (que por defecto está presente en Ubuntu 16.04) a Python 3.5.

Siga los siguientes pasos:

  1. Terminal abierto
  2. Conviértase en usuario root mediante el comando sudo.
  3. Use el siguiente código para actualizar Python 2.7 a 3.5

    sudo apt-get install python3.5

  4. Se te pedirá tu permiso, luego da la opción Y.

  5. Espera hasta completar el proceso.
  6. borrar la pantalla usando el comando clear
  7. Verifique la versión de Python con el siguiente comando.

    Python -version

Big Data Guy
fuente
1
Utilice el formato adecuado en el futuro y manténgase alejado de declaraciones como "Espero que esto lo ayude". son solo ruido. Al responder la pregunta, se supone, que está intentando responder la pregunta con algo que sea útil. Debe revisar su respuesta y corregir los errores gramaticales menores que no solucioné y proporcionar capturas de pantalla del proceso. Esta vez arreglé el formato para usted, no lo volveré a hacer, creo firmemente que los autores deben resolver sus propias respuestas y preguntas.
Ramhound
Y no es tan simple, esto no actualiza los enlaces simbólicos correctamente, por lo que terminas con 3.4 y 3.5 uno al lado del otro. Python2 generalmente está al lado de python3 de todos modos, no actualizamos Python2 a Python3, migramos nuestro trabajo.
mckenzm
0

En el caso de que esté ejecutando una versión LTS, su python podría estar retrasado por una versión menor, digamos 2.7.5 en lugar de 2.7.10.

Una posibilidad sería actualizar el sistema :

  • establecido prompt=normalen/etc/update-manager/release-upgrades
  • actualizar el sistema
    • en la línea de comando, puede escribir sudo do-release-upgradepara hacer que el administrador de actualizaciones haga su trabajo para actualizar a la última versión (= no LTS).
    • la solución GUI usa el Administrador de actualizaciones

Como siempre al actualizar, eche un vistazo a las notas de la versión , ya que la actualización puede dañar su sistema en algunos casos, vea el comentario de @ Gino .

serv-inc
fuente
¡Amigo, probé tu cambio y rompió mi sistema Ubuntu 14.04! Básicamente, trató de actualizar de 14.04 a Ubuntu 15 y no pudo hacerlo con éxito, dejando mi sistema en un estado intermedio donde el inicio de sesión gráfico ya no funcionaba, por ejemplo, iniciaría sesión a través del inicio de sesión gráfico y patearía me devuelve al mismo inicio de sesión gráfico. Acabo de pasar la última hora + reinstalando Ubuntu 14.04 en mi máquina para solucionar el problema de su supuesta solución .
Gino
@Gino: Gracias por los comentarios. ¿Has echado un vistazo askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… y las notas de la versión? Hay un problema con el "controlador fglrx de AMD". ¿Quieres alguna otra ayuda?
serv-inc
Creo que su sugerencia, para eludir los controles de seguridad normales, lo que permite una actualización a una versión que no sea LTS está llena de peligros. Hasta el día de hoy, no sé por qué falló la actualización, porque no mostró ningún mensaje de error diagnosticable. En cambio, terminé con un sistema que ya no era utilizable. Si no recuerdo mal, terminé volviendo a ejecutar la instalación de Ubuntu con ciertas configuraciones que pudieron restaurar la mayor parte de mi sistema. Y, como nota al margen, soy un programador profesional, por lo que generalmente conozco un sistema Linux.
Gino
@Gino: Este parece ser el procedimiento estándar para cambiar de LTS a no LTS. Es '[cambia] el nivel de conciencia de los nuevos lanzamientos. Uno puede configurar esto en versiones "compatibles" (regulares), "solo a largo plazo" (LTS), o incluso "nada" (sin actualizaciones importantes) ". Para consultar la cita, consulte askubuntu.com/questions/240160/… . Utiliza el administrador de actualizaciones del sistema. Desafortunadamente, en su caso, la actualización (predeterminada) no funcionó, lo que podría deberse a un controlador de gráficos defectuoso (consulte los enlaces anteriores).
serv-inc