Estoy usando Ubuntu 16.04 LTS. Yo tengo python3
instalado. Hay dos versiones instaladas, python 3.4.3
y python 3.6
. Cada vez que uso python3
comando, se necesita python 3.4.3
por defecto. Quiero usar python 3.6
con python3
.
python3 --version
muestra version 3.4.3
Estoy instalando ansible
que admite version > 3.5
. Entonces, cada vez que escribo ansible en la terminal, arroja un error debido a python 3.4
Del comentario:
Sudo update-alternatives --config python
Te mostrará un error:
update-alternatives: error: no alternatives for python3
Necesitas actualizar tu update-alternatives
, entonces podrá establecer su versión predeterminada python.
Sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1
Sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
Entonces corre :
Sudo update-alternatives --config python
Establecer python3.6 como predeterminado.
O utilice el siguiente comando para configurar python3.6 como predeterminado:
Sudo update-alternatives --set python /usr/bin/python3.6
Puede lograr esto aplicando los siguientes pasos simples:
python --version
Sudo su
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
python --version
El uso de estos comandos puede ayudarlo a:
ls /usr/bin/python*
alias python='/usr/bin/pythonxx'
(agregue esto a . ~/.bashrc
). ~/.bashrc
python --version
Cree un enlace simbólico para/usr/bin/python3. En mi LinuxMint:
# ls -lh /usr/bin/python3 /usr/bin/python
lrwxrwxrwx 1 root root 9 ноя 24 2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 сен 6 2017 /usr/bin/python3 -> python3.5
# mv /usr/bin/python /usr/bin/python.bak
# cp /usr/bin/python3 /usr/bin/python
# python --version
Python 3.5.2
Una respuesta fácil sería agregar un alias para python3.6.
Simplemente agregue esta línea en el archivo ~/.bashrc: alias python3="python3.6"
, luego cierre su terminal y abra una nueva. Ahora cuando escribe python3 xxx
se traduce a python3.6 xxx
.
Esta solución soluciona su problema sin necesidad de ajustar demasiado su sistema.
EDITAR:
Como Mikael Kjær señaló, esta es una configuración incorrecta de ansible con su sistema.
Como se ve aquí:
Selecciona el
ansible_python_interpreter
opción de configuración para/usr/bin/python3. La opción de configuración ansible_python_interpreter generalmente se establece por Host como una variable de inventario asociada con un Host o grupo de hosts:# Example inventory that makes an alias for localhost that uses python3 [py3-hosts] localhost-py3 ansible_Host=localhost ansible_connection=local [py3-hosts:vars] ansible_python_interpreter=/usr/bin/python3
Como se ve aquí sobre el archivo de configuración:
Los cambios se pueden realizar y utilizar en un archivo de configuración que se procesará en el siguiente orden:
* ANSIBLE_CONFIG (an environment variable) * ansible.cfg (in the current directory) * .ansible.cfg (in the home directory) * /etc/ansible/ansible.cfg
si tiene varias versiones de python en su sistema. Solo necesita actualizar el enlace simbólico de python dentro de /usr/bin/
[email protected]:/usr/bin# ls -lrth python*
lrwxrwxrwx 1 root root 9 Apr 16 2018 python -> python2.7
-rwxr-xr-x 1 root root 3.6M Nov 12 2018 python2.7
-rwxr-xr-x 2 root root 4.4M May 7 14:58 python3.6
En el ejemplo anterior, si ve la salida de python --version
obtendrá python2.7
Ahora actualice el enlace simbólico python usando el siguiente comando-
[email protected]:/usr/bin# unlink python
[email protected]:/usr/bin# ln -s /usr/bin/python3.6 python
[email protected]:/usr/bin# python --version
Python 3.6.8
la primera comprobación de tu carpeta python3.6
ls /usr/bin/python3.6
si tienes una carpeta como python3.6 bueno para ir
luego actualizar-alternativas
Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
ahora actualice la nueva configuración para python3
Sudo update-alternatives --config python3
verificar python versión
python3 --version
abra la terminal y escriba: gedit ~/.bashrc
y agregue la siguiente línea:
alias python=python3.x
donde x es su python versión.
Feliz codificación.
Puede cambiar el enlace simbólico por ln -sf python3.6 python3
Dentro de /usr/bin
. Con esto cuando llamas a python3
Se ejecutará python3.6
actualización-alternativas es cambiar los enlaces simbólicos del sistema a enlaces simbólicos definidos por el usuario/definidos por el administrador. Si tiene varias versiones de python3 instaladas en su sistema y desea controlar qué versión de python3 invocar cuando se llama a python3. Haz lo siguiente
Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.4 1
Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2
Ejecute el siguiente comando si desea cambiar la prioridad en el futuro.
update-alternatives --config python3
Explicación:-
Sudo update-alternatives --install <symlink_Origin> <name_of_config> <symlink_destination> <priority>
Puede continuar cambiando name_of_config a python4, pero luego debe invocar las alternativas de actualización --config con python4 para reconfigurar.
Con este enfoque, puede controlar el sistema python y versión de python3 por separado).