web-dev-qa-db-fra.com

Changer la version par défaut de Python3 dans Ubuntu

J'utilise Ubuntu 16.04 LTS. J'ai python3 installée. Il existe deux versions installées, python 3.4.3 et python 3.6. Chaque fois que j'utilise python3 commande, il faut python 3.4.3 par défaut. Je veux utiliser python 3.6 avec python3.

python3 --version montre version 3.4.3

J'installe ansible qui prend en charge version > 3.5. Donc, chaque fois que je tape ansible dans le terminal, cela génère une erreur à cause de python 3.4

123
codeclue

Du commentaire:

Sudo update-alternatives --config python

Vous montrera une erreur:

update-alternatives: error: no alternatives for python3 

Vous devez mettre à jour votre update-alternatives, vous pourrez alors définir votre version par défaut 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

Exécutez ensuite:

Sudo update-alternatives --config python

Définissez python3.6 par défaut.

Ou utilisez la commande suivante pour définir python3.6 par défaut:

Sudo update-alternatives  --set python /usr/bin/python3.6
173
GAD3R

Vous pouvez y parvenir en appliquant les étapes simples ci-dessous -

  1. Vérifiez python sur le terminal - python --version
  2. Obtenez des privilèges d'utilisateur root. Sur type de terminal - Sudo su
  3. Notez le mot de passe de l'utilisateur root
  4. Exécutez cette commande pour passer à python 3.6 -
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  5. Vérifiez python - python --version
  6. Terminé.
21
Vineet Jain

L'utilisation de ces commandes peut vous aider:

  1. vérifier la version de python: ls /usr/bin/python*
  2. alias: alias python='/usr/bin/pythonxx' (ajoutez ceci à . ~/.bashrc)
  3. reconnexion ou source . ~/.bashrc
  4. vérifiez à nouveau la version python: python --version
12
Newt

Créez un lien symbolique pour/usr/bin/python3. Dans mon 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
6
nabi sheyhov

Une réponse simple serait d'ajouter un alias pour python3.6.

Ajoutez simplement cette ligne dans le fichier ~/.bashrc: alias python3="python3.6", puis fermez votre terminal et ouvrez-en un nouveau. Maintenant, lorsque vous tapez python3 xxx il est traduit en python3.6 xxx.

Cette solution résout votre problème sans avoir à modifier votre système trop fortement.

MODIFIER:

Comme Mikael Kjær l'a souligné, il s'agit d'une mauvaise configuration de ansible avec votre système.

Comme vu ici:

Met le ansible_python_interpreter option de configuration vers/usr/bin/python3. L'option de configuration ansible_python_interpreter est généralement définie par hôte en tant que variable d'inventaire associée à un hôte ou à un groupe d'hôtes:

  # 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

Comme vu ici sur le fichier de configuration:

Des modifications peuvent être apportées et utilisées dans un fichier de configuration qui sera traité dans l'ordre suivant:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg
4
user264413

si vous avez plusieurs versions de python dans votre système. Il vous suffit de mettre à jour le lien symbolique de python à l'intérieur de /usr/bin/

root@irshad:/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

Dans l'exemple ci-dessus, si vous voyez la sortie de python --version vous obtiendrez python2.7

Maintenant, mettez à jour le lien symbolique python en utilisant la commande ci-dessous-

root@irshad:/usr/bin# unlink python
root@irshad:/usr/bin# ln -s /usr/bin/python3.6 python
root@irshad:/usr/bin# python --version
Python 3.6.8
3
IRSHAD

la première vérification avez-vous le dossier python3.6

ls /usr/bin/python3.6

si vous avez un dossier comme python3.6 bon pour aller

puis mise à jour-alternatives

Sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

maintenant mettre à jour une nouvelle configuration pour python3

Sudo update-alternatives --config python3

vérifier python

python3 --version

2
mmblack

terminal ouvert et tapez: gedit ~/.bashrc et ajoutez la ligne suivante:

alias python=python3.x

où x est votre python.

Codage heureux.

1
Priyanshu Tiwari

Vous pouvez modifier le lien symbolique par ln -sf python3.6 python3 À l'intérieur de /usr/bin. Avec cela, lorsque vous appelez python3, Il exécutera python3.6

1
SPAWN35

update-alternatives consiste à changer les liens symboliques du système en liens symboliques définis par l'utilisateur/définis par l'administrateur. Si plusieurs versions de python3 sont installées sur votre système et que vous souhaitez contrôler la version de python3 à appeler lors de l'appel de python3. Procédez comme suit

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

Exécutez la commande ci-dessous si vous souhaitez modifier la priorité à l'avenir.

update-alternatives --config python3

Explication:-

Sudo update-alternatives --install <symlink_Origin> <name_of_config> <symlink_destination> <priority>

Vous pouvez continuer à changer name_of_config en python4, mais vous devez ensuite invoquer update-alternatives --config avec python4 pour reconfigurer.

En utilisant cette approche, vous pouvez contrôler le système python et version python3 séparément.

0
wittyurchin