Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 25/07/2017, à 11:54

Dives

[RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Bonjour à tous,

Je souhaite lancer mes programmes sous python 3.6.2, cependant ils se lancent tous sous python 2.7. Pourtant la version 3.6.2 est bien installer puisque je peux l'utiliser dans le lanceur de commande avec

python3

Je pense que ça vient du fait que la version par défaut est la 2.7 puisque:

 python -V

me donne

Python 2.7.12

.

Est ce que vous sauriez comment définir la version 3.6.2 par défaut svp ? De façon à ce qu'elle soit utiliser automatiquement au lacement de mes programmes (sous vim).

Dernière modification par Dives (Le 25/07/2017, à 22:47)


" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#2 Le 25/07/2017, à 12:10

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Bonjour,
Il ne faut surtout pas supprimer python2, car il est utilisé par le système.
Tu peux mettre cette ligne en tête de tes scripts :

#!/usr/bin/env python3

Hors ligne

#3 Le 25/07/2017, à 13:06

Dives

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Merci de ta réponse.. Cependant j'ai toujours le même problème. J'étais sur que cela vennais de ma version python mais apparemment non.
Quand je lance un programme, par exemple un qui convertit les °C en °F j'obtient

('\n1\xc2\xb0F correspond \xc3\xa0 0', '\xc2\xb0C')

à la place de

1 °C correspond à 33.8 °F

Est ce que vous sauriez d’où provient le problème, sachant que j'ai bien définit l'encodage en uft-8


" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#4 Le 25/07/2017, à 13:32

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Peux-tu montrer le bout de script ?

Hors ligne

#5 Le 25/07/2017, à 21:50

Dives

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Voila mon script:

# -*- coding: utf-8 -*-
#!/usr/bin/env python3

print("Convertisseur degré-fahrenheit")
print("------------------------------")

i = 0

while i == 0:
    print("Convertisseur degré vers fahrenheit- 1")
    print("Convertisseur fahrenheit vers degré- 2")
    print("\n")
    rep1 = input("Convertisseur n° ")
    rep1 = int(rep1)

    while rep1 != 1 and rep1 != 2:
        rep1 = input("Veuillez saisir 1 ou 2 ")
        rep1 = int(rep1)

    if rep1 == 1:
        tmp_ini = input("Température à convertir: ")
        tmp_ini = int(tmp_ini)
        tmp = tmp_ini*(9/5)+32
        tmp = int(tmp)
        print("\n"+str(tmp_ini)+"°C correspond à "+str(tmp),"°F")


    if rep1 == 2:
        tmp_ini = input("Température à convertir: ")
        tmp_ini = int(tmp_ini)
        tmp = (tmp_ini-32)*(5/9)
        tmp = int(tmp)
        print("\n"+str(tmp_ini)+"°F correspond à "+str(tmp),"°C")

    rep2 = input("\nVoulez vous convertir une autre température ? (oui:1 / non:2) ")
    rep2 = int(rep2)

    while rep2 != 1 and rep2 != 2:
        rep2 = input("Veuillez saisir 1 pour oui ou 2 pour non ")
        rep2 = int(rep2)

    if rep2 == 1:
        i = 0
        print("\n")

    if rep2 == 2:
        i = 1
        print("\n")

print("Au revoir")

" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#6 Le 25/07/2017, à 22:00

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Cette ligne doit être la première du script :

#!/usr/bin/env python3

Hors ligne

#7 Le 25/07/2017, à 22:04

Dives

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

J'obtiens toujours le même résultat malgrés que je vienne de la mettre en première ligne


" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#8 Le 25/07/2017, à 22:17

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Comment le lances-tu ? Sans doute avec python2.

Si tu veux que les impressions soient correctes en python2 et python3 :

        print("\n%s °C correspond à %s °F"%(tmp_ini,tmp))
        print("\n%s °F correspond à %s °C"%(tmp_ini,tmp))

Ajouté : Attention, en python2, tu fais des divisions entières, et certains résultats seront faux.

Dernière modification par pingouinux (Le 25/07/2017, à 22:23)

Hors ligne

#9 Le 25/07/2017, à 22:23

Dives

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Je le lance à l'aide de VIM en ayant ajouté la ligne

nnoremap <silent> <F5> :!clear;python %<CR>

au dossier .vimrc. Donc en appuyant sur F5

Ce problème ne survient pas quand je lance le sript avec le Python IDLE


" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#10 Le 25/07/2017, à 22:25

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Je n'utilise pas cette méthode, mais la ligne de commande dans un terminal.
J'ai complété mon message précédent.

Hors ligne

#11 Le 25/07/2017, à 22:29

Dives

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

J'ai vu ton message. Merci de me le signaler, mais le programme envoyé est très ancien et doit sûrement être rempli d'erreur.

Pourrais tu détailler ta méthode stp ? Quelle ligne de commande rentres-tu dans le terminal ?


" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#12 Le 25/07/2017, à 22:42

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Dives a écrit :

Quelle ligne de commande rentres-tu dans le terminal ?

python3 le_script.py

Il suffit peut-être que tu remplaces python par python3 sur la ligne de .vimrc que tu montres en #9.

Hors ligne

#13 Le 25/07/2017, à 22:47

Dives

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

J'ai remplacé python par python3 et ça a marché. Merci beaucoup


" Il n'y a pas de question idiote, seulement une réponse idiote. " Albert Einstein

Hors ligne

#14 Le 26/07/2017, à 07:44

pingouinux

Re : [RÉSOLU] Utiliser python 3.6.2 à la place de 2.7

Pour que la première ligne du script soit prise en compte, tu peux mettre ceci dans .vimrc, sans préciser l'interpréteur :

nnoremap <silent> <F5> :!clear;%<CR>

Il faut simplement que le script soit exécutable.

Hors ligne