Tengo dos versiones de python en mi linuxbox:
$python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ /usr/local/bin/python2.7
Python 2.7.3 (default, Oct 8 2013, 15:53:09)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
$ which python
/usr/bin/python
$ ls -al /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Jul 10 22:49 /usr/bin/python
¿Cómo puedo hacer que 2.7 sea la versión predeterminada, de modo que cuando python
escribo me pone en 2.7?
/usr/bin/env python
a 2.6 en lugar de 2.3 significaba la mitad de los comandosrpm
y todourpmi
dejó de funcionar)./usr/bin/python
fue un enlace simbólico que apunta apython2
. Lo acabo de cambiar apython3.6
Respuestas:
Probablemente no quieras cambiar tu Python predeterminado.
Su distribución instaló un sistema estándar en Python
/usr/bin
, y puede tener scripts que dependen de que esté presente, y seleccionados por#! /usr/bin/env python
. Por lo general, puede salirse con la ejecución de scripts Python 2.6 en 2.7, pero ¿quiere arriesgarse?Además de eso, hacer monos con
/usr/bin
puede romper la capacidad de su administrador de paquetes para administrar paquetes. Y cambiar el orden de los directorios en tuPATH
afectará muchas otras cosas además de Python. (De hecho, es más común tenerlo/usr/local/bin
por delante/usr/bin
, y puede ser lo que realmente quieres, pero si lo tienes al revés, presumiblemente hay una buena razón para eso).Pero no necesita cambiar su Python predeterminado para que el sistema ejecute 2.7 cuando escribe
python
.Primero, puede configurar un alias de shell:
Escríbalo en un símbolo del sistema, o póngalo en su
~/.bashrc
si desea que el cambio sea persistente, y ahora cuando lo escribepython
ejecuta el 2.7 elegido, pero cuando algún programa en su sistema intenta ejecutar un script con/usr/bin/env python
él ejecuta el estándar 2.6.Alternativamente, solo cree un entorno virtual a partir de su 2.7 (o venvs separados para diferentes proyectos), y haga su trabajo dentro del venv.
fuente
yum
comando no funciona! Intenté crear el enlace sym pero no funcionasudo ln -sf /usr/bin/python2.6 /usr/bin/python
ninguna solución/usr/bin/python
no era realmente un enlace simbólico, era un script de envoltura o ejecutable, y ahora lo ha sobrescrito y no puede recuperarlo. Sirpm
aún funciona, puede descargar manualmente el paquete Python e instalarlo sin élyum
.python2.6
por lo que todavía está allí.Agregue
/usr/local/bin
a suPATH
variable de entorno, antes en la lista que/usr/bin
.En general, esto se hace en el archivo rc de su shell, por ejemplo, para bash, lo pondría en
.bashrc
:Esto hará que su cáscara mirar primero para un
python
en/usr/local/bin
, antes de que salga con el de/usr/bin
.(Por supuesto, esto significa que también debe tener un
/usr/local/bin/python
puntopython2.7
, si aún no lo tiene, deberá vincularlo).fuente
Ingrese el comando
Aquí puedes ver algo como esto
su python2.7 predeterminado está vinculado de manera flexible al texto 'python'
Así que elimine la pitón softlink
luego vuelva a intentar el comando anterior
puedes ver que se elimina el enlace suave
Luego cree un nuevo enlace suave para python3.6
ln -s /usr/bin/python3.6 python
Luego intente el comando
python
en la terminalEscribir
help
,copyright
,credits
olicense
para más información.fuente
Verifique la versión actual de python:
luego verifique que python es un enlace simbólico a qué archivo.
Salida Ex:
Verifique otras versiones disponibles de python:
Salida Ex:
Si desea cambiar la versión actual de python a la versión 3.6, edite el archivo ~ / .bashrc:
agregue la siguiente línea al final del archivo y guarde:
Para instalar pip para python 3.6
En Éxito, verifique la versión actual de pip:
Salida Ex:
fuente
Todo el sistema operativo viene con una versión predeterminada de python y reside en / usr / bin. Todos los scripts que vienen con el sistema operativo (por ejemplo, yum) apuntan a esta versión de Python que reside en / usr / bin. Cuando desea instalar una nueva versión de python, no desea romper los scripts existentes que pueden no funcionar con la nueva versión de python.
La forma correcta de hacerlo es instalar Python como una versión alternativa.
Ahora, al hacer esto, los scripts existentes como yum todavía funcionan con / usr / bin / python. y su versión de python predeterminada sería la instalada en / usr / local / bin. es decir, cuando escribe python obtendría 2.7.3
Esto sucede porque La variable $ PATH tiene / usr / local / bin antes de usr / bin.
Si python2.7 todavía no tiene efecto como la versión predeterminada de python, deberá hacerlo
fuente
¿Supongo que ha instalado la versión 2.7 manualmente, mientras que 2.6 viene de un paquete?
La respuesta simple es: desinstalar el paquete python.
La más compleja es: no instalar manualmente en / usr / local. Cree un paquete con la versión 2.7 y luego actualícelo.
El manejo de paquetes depende de la distribución que use.
fuente