Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

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.

À propos de l'équipe du forum.

#1 Le 29/10/2021, à 20:43

ollivier

[résolu] python sous Ubuntu 20.04.3 LTS

Bonsoir,
j'aimerais me mettre à python, et lorsque je tape dans le terminal "python3 -V" , voici le retour :

Python 3.8.10

pourtant je ne trouve pas python dans les applications et je ne vois pas comment le lancer.
Je suis sous Ubuntu 20.04.3 LTS
Quelqu'un peut-il m'aider ? Merci ...

Dernière modification par ollivier (Le 01/11/2021, à 17:13)

Hors ligne

#2 Le 29/10/2021, à 21:02

beuguissime

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Bonsoir,
En lançant la commande

python

ou

python3

tu démarreras l'interpréteur Python, une console où tu peux taper des instructions Python et avoir le résultat une fois les instructions exécutées.

Par exemple, en tapant dans l'interpréteur

print("Bonsoir!")

tu verras s'afficher la phrase

Bonsoir!

C'est pratique pour tester des bouts de code, se faire la main, ou tout simplement faire une opération simple pour laquelle on n'a pas besoin/ne veut pas écrire un programme dans un fichier.

Dès que ça devient compliqué ou que tu envisages de réexécuter souvent une série d'instructions, il devient intéressant d'écrire un programme python. Simple fichier texte qui commencera par

#!/usr/bin/python3

et dans lequel tu mettras tes instructions Python.

Tu pourrras ensuite rendre ce fichier exécutable et l'exécuter comme si c'était Firefox ou vlc.

Certaines personnes préfèreront alors utiliser un IDE pour développer leur code (en python ou autre langage), d'autres s'en passeront. C'est, je pense, ce que tu t'attendais à trouver dans ta liste de programme. Je fais partie de la deuxième catégorie donc il faudra un/e autre intervenant/e pour te conseiller sur ce point.

Trouve-toi un FLOT/MOOC qui te plaît pour t'initier à Python. Il y en a un bon sur fun-mooc.fr

Hors ligne

#3 Le 29/10/2021, à 21:29

Nuliel

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Bonjour,
+1 globalement smile
Quelques infos complémentaires:
attention il peut y avoir plusieurs versions de python installées (typiquement python2 même s'il est obsolète, et python3), donc

python

va pas forcément lancer python3.
L'exemple proposé par beuguissime

nuliel@nuliel-desktop:~$ python3
Python 3.9.7 (default, Sep 24 2021, 09:43:00) 
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Bonsoir!')
Bonsoir!
>>> exit()
nuliel@nuliel-desktop:~$

Cela m'arrive quelques fois d'utiliser cette méthode, ou si j'ai juste une commande à passer, je fais

python3 -c "print('A'*12)"

On peut lancer un programme python en faisant

python3 monprogramme.py

(d'ailleurs il n'a pas besoin d'être exécutable dans ce cas là), sinon

./monprogramme.py

(s'il est exécutable)

Pour le rendre exécutable,

chmod u+x monprogramme.py

Un IDE est vraiment pratique en particulier au début parce qu'il te donnera des indications sur les différentes erreurs que tu feras, Pour ma part j'utilisais IDLE pour coder en python, là je suis sur vscode, donc franchement, peu importe l'IDE, du moment qu'il indique les erreurs, Il y a un tableau ici https://doc.ubuntu-fr.org/python qui donne des exemples d'éditeurs.

Je te recommande vivement "Python 3 : des fondamentaux aux concepts avancés du langage" sur fun-mooc, on est plusieurs du forum à l'avoir suivi et on est unanime: ce mooc est génial.

@beuguissime: par curiosité, qu'utilises tu comme éditeur?

Dernière modification par Nuliel (Le 29/10/2021, à 21:33)


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

#4 Le 29/10/2021, à 21:47

beuguissime

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Salut Nulliel,
Merci d'avoir complété et précisé mon propos. C'est vrai que je croyais à tort que sur ubuntu 20.04, la commande

python

renvoyait vers

python3

mais ça n'est pas forcément le cas. Sur ma machine en 20.04, j'ai installé python2.7 pour des raisons « d'héritage » et forcément,

python

lance

python2.7

Peut-être que sur une ubuntu 20.04 « vanilla », il y a le lien python -> python3. Je ne sais plus.
Quoiqu'il en soit, tu as raison de rappeler qu'il ne faut plus écrire aujourd'hui de code de la branche 2.7.x



J'ai trop de bonnes (ou mauvaises ? smile) habitudes avec emacs. Donc quasi-tout ce qui est de type texte, je le fais avec emacs. Je veux bien croire qu'emacs reste peut-être compétitif vis-à-vis d'un IDE jusqu'à une certaine taille de projet de développement et qu'au-delà, ça devient ingérable. Je n'ai pas encore atteint cette bifurcation. big_smile

Hors ligne

#5 Le 29/10/2021, à 22:08

Nuliel

Re : [résolu] python sous Ubuntu 20.04.3 LTS

En fait, vu que python2 peut être parfois installé (pour ma part c'est lorsque j'ai récupéré un vieux code python2, d'ailleurs il y a un programme qui convertit du python2 en python3, si tu veux je peux retrouver le nom), python va pas forcément lancer python3.

Le bon éditeur c'est celui avec lequel on est efficace! Je n'ai jamais essayé emacs. J'avais essayé de coder avec vim mais j'avais vite abandonné par manque de temps (j'étais trop lent, mais c'est le temps d'apprentissage, c'est normal)


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

#6 Le 29/10/2021, à 22:20

beuguissime

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Oui, c'est 2to3 pour faciliter la traduction vers la branche 3.x. J'ai déjà utilisé sur des programmes simples mais j'ai aussi du code legacy bien trop gros (et dans lequel je ne veux même pas mettre le nez) qui demandera sans doute plus que de faire tourner 2to3.
Oui, emacs ou vim sont assez déroutant au début.

Hors ligne

#7 Le 30/10/2021, à 08:46

ollivier

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Merci pour vos réponses, j'essaie ça sans tarder !

Hors ligne

#8 Le 31/10/2021, à 18:51

beuguissime

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Et si tu veux une console python un peu plus agréable et pratique, installe le paquet python3-ipython et lance la console avec la commande

ipython3

Hors ligne

#9 Le 01/11/2021, à 09:13

ollivier

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Merci. En fait j'ai des fichiers python qui fonctionnent bien en utilisant un compilateur sur internet et qui ne fonctionnent pas avec python3 sur mon poste.

Hors ligne

#10 Le 01/11/2021, à 10:12

Nuliel

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Si tu veux tu peux donner l'un des programmes qui ne fonctionnent pas, on testera.

En python, la compilation se fait habituellement à la volée, après c'est possible de compiler, mais c'est rare que cela soit très utile.


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

#11 Le 01/11/2021, à 11:44

ollivier

Re : [résolu] python sous Ubuntu 20.04.3 LTS

C'est un programme qui normalement permet de tracer la trajectoire d'une particule dans un champ électrostatique. Il devrait me poser 3 questions : choisir la particule entre un électron, un positon ou un proton, donner la valeur de champ électrique, la valeur de la vitesse initiale  et la valeur de l'angle, questions qu'il ne me pose pas : voici ce que ça donne :

ollivier@ollivier-X75A:~$ python3
Python 3.8.10 (default, Sep 28 2021, 16:10:42) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> #############################################################################
>>> # Exercice 31 - Étude de la trajectoire d’une particule chargée entre les armatures
>>> #d’un condensateur plan
>>> #############################################################################
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> #############################################################################
>>> # Constantes fixes connues
>>> #############################################################################
>>> e = 1.602176634e-19 #Coulomb
>>> m_electron = 9.11e-31 #kg
>>> m_proton = 1.67e-27 #kg
>>> 
>>> 
>>> x = np.arange(0,0.1,0.001)
>>> #############################################################################
>>> # Constantes à fixer
>>> #############################################################################
>>> choice = int(input("Choisir une particule :\n 1=Électron / 2=Positon / 3=Proton "))
Choisir une particule :
 1=Électron / 2=Positon / 3=Proton if choice == 1:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'if choice == 1:'
>>>     print("La particule choisie est un electron")
  File "<stdin>", line 1
    print("La particule choisie est un electron")
    ^
IndentationError: unexpected indent
>>>     q=-1*e
  File "<stdin>", line 1
    q=-1*e
    ^
IndentationError: unexpected indent
>>>     m = m_electron
  File "<stdin>", line 1
    m = m_electron
    ^
IndentationError: unexpected indent
>>> elif choice == 2:
  File "<stdin>", line 1
    elif choice == 2:
    ^
SyntaxError: invalid syntax
>>>     print("La particule choisie est un positon")
  File "<stdin>", line 1
    print("La particule choisie est un positon")
    ^
IndentationError: unexpected indent
>>>     q=1*e
  File "<stdin>", line 1
    q=1*e
    ^
IndentationError: unexpected indent
>>>     m = m_electron
  File "<stdin>", line 1
    m = m_electron
    ^
IndentationError: unexpected indent
>>> elif choice == 3:
  File "<stdin>", line 1
    elif choice == 3:
    ^
SyntaxError: invalid syntax
>>>     print("La particule choisie est un proton")
  File "<stdin>", line 1
    print("La particule choisie est un proton")
    ^
IndentationError: unexpected indent
>>>     q=1*e
  File "<stdin>", line 1
    q=1*e
    ^
IndentationError: unexpected indent
>>>     m = m_proton
  File "<stdin>", line 1
    m = m_proton
    ^
IndentationError: unexpected indent
>>> else:
  File "<stdin>", line 1
    else:
    ^
SyntaxError: invalid syntax
>>>     print("Le choix que vous avez fait n'est pas dans la liste")
  File "<stdin>", line 1
    print("Le choix que vous avez fait n'est pas dans la liste")
    ^
IndentationError: unexpected indent
>>> 
>>> 
>>> E = np.float(input("Donner la valeur du champ électrique E compris entre 1e4 et 3e4 V.m-1:"))
Donner la valeur du champ électrique E compris entre 1e4 et 3e4 V.m-1:V0 = np.float(input("Donner la valeur de la vitesse initiale de la particule V0 comprise entre 1e7 et 3e7 m.s-1 :"))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: 'V0 = np.float(input("Donner la valeur de la vitesse initiale de la particule V0 comprise entre 1e7 et 3e7 m.s-1 :"))'
>>> alpha = np.float(input("Donner l'angle de tir en degré:"))
Donner l'angle de tir en degré:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: ''
>>> #############################################################################
>>> # Établissement de la trajectoire de la particule
>>> #############################################################################
>>> y = ((q*E*x**2)/(2*m*(V0*np.cos(alpha*np.pi/180))**2))+(np.tan(alpha*np.pi/180)*x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'q' is not defined
>>> 
>>> #############################################################################
>>> # Tracé
>>> #############################################################################
>>> plt.figure(figsize=(12,8))
<Figure size 1200x800 with 0 Axes>
>>> #Axes x et y
>>> plt.axhline(0,c='k'); plt.axvline(0,c='k');
<matplotlib.lines.Line2D object at 0x7f604b00ad60>
<matplotlib.lines.Line2D object at 0x7f604b013fa0>
>>> plt.text(-0.005,-0.005,'O',color='k',fontsize=16)
Text(-0.005, -0.005, 'O')
>>> plt.text(0.095,-0.005,'x',color='k',fontsize=16)
Text(0.095, -0.005, 'x')
>>> plt.text(-0.006,0.047,'y',color='k',fontsize=16)
Text(-0.006, 0.047, 'y')
>>> #Axes i et j et k
>>> plt.arrow(0,0,0.02,0,color='k',width=7e-4,head_width=3e-3,length_includes_head=True)
<matplotlib.patches.FancyArrow object at 0x7f604b029ac0>
>>> plt.text(0.013,-0.012,'$\overrightarrow{i}$',color='k',fontsize=16)
Text(0.013, -0.012, '$\\overrightarrow{i}$')
>>> plt.arrow(0,0,0,0.02,color='k',width=7e-4,head_width=3e-3,length_includes_head=True)
<matplotlib.patches.FancyArrow object at 0x7f604b029ee0>
>>> plt.text(-0.008,0.01,'$\overrightarrow{j}$',color='k',fontsize=16)
Text(-0.008, 0.01, '$\\overrightarrow{j}$')
>>> #Ligne Orange représentative des limites du condensateur
>>> plt.plot([0,0.1],[0.05,0.05],c='#E6A32E',linewidth=3)
[<matplotlib.lines.Line2D object at 0x7f604afbd280>]
>>> plt.plot([0,0.1],[-0.05,-0.05],c='#E6A32E',linewidth=3)
[<matplotlib.lines.Line2D object at 0x7f604afbd2b0>]
>>> #Tracer de - et + au limites du condensateur
>>> for i in range(int(x.shape[0]/10)-1):
...     plt.text(x[::10][i+1],0.0465,'-',color="#E6A32E",fontsize=25)
...     plt.text(x[::10][i+1],-0.0485,'+',color="#E6A32E",fontsize=15)
... #Tracer la trajectoire
... plt.plot(x,y,'b')
  File "<stdin>", line 5
    plt.plot(x,y,'b')
    ^
SyntaxError: invalid syntax
>>> #Tracer Vecteur champ électrique
>>> plt.quiver(x[-30],0,0,E,color='g',scale=1e5,width=0.005)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'E' is not defined
>>> plt.text(x[-30]+0.003,0.005,'$\overrightarrow{E}$',color='g',fontsize=16)
Text(0.07300000000000001, 0.005, '$\\overrightarrow{E}$')
>>> #Tracer Vecteur V0
>>> plt.quiver(0,0,V0*np.cos((alpha*np.pi)/180),V0*np.sin((alpha*np.pi)/180),color='r',scale=1.5e8,width=0.005)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'V0' is not defined
>>> plt.text(0.004,0.01,'$\overrightarrow{V_0}$',color='r',fontsize=16)
Text(0.004, 0.01, '$\\overrightarrow{V_0}$')
>>> #Parmaètres du tracé
>>> plt.grid(True)
>>> ax = plt.gca()
>>> ax.set_aspect('equal',adjustable='box')
>>> plt.ylim([-0.0503,0.0505])
(-0.0503, 0.0505)
>>> plt.xlim([-0.02,0.1])
(-0.02, 0.1)
>>> plt.show()
>>> 

Hors ligne

#12 Le 01/11/2021, à 11:51

Nuliel

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Cela ne s'utilise pas comme ça. Normalement cela se lance comme ça

python3 monprogramme.py

où monprogramme.py contient le code que tu as copié collé.

Exemple: je me place dans le dossier Bureau qui se trouve dans mon répertoire personnel, qui contient le fichier monprogramme.py à exécuter:

nuliel@nuliel-desktop:~$ cd Bureau/
nuliel@nuliel-desktop:~/Bureau$ python3 monprogramme.py

~ veut dire répertoire personnel
Ou alors plus court:

python3 Bureau/monprogramme.py

Pour info python est très pointilleux avec la différence entre espace et indentation avec tab. Il faut toujours utiliser tab, pas espace pour faire une indentation.


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

#13 Le 01/11/2021, à 12:50

nany

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Bonjour,



Nuliel a écrit :

Il faut toujours utiliser tab, pas espace pour faire une indentation.

Euh… neutral

Hors ligne

#14 Le 01/11/2021, à 12:53

Nuliel

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Pour ma part j'utilise toujours tab et ça marche bien, et aussi j'avais copié collé un code il y a pas mal de temps (possiblement en python2 à ce moment là), et j'avais dû changer les espaces en tab
Après peut être que l'éditeur de code s'occupe de cette conversion?

Dernière modification par Nuliel (Le 01/11/2021, à 12:54)


[ poster un retour de commande ] [ poster une photo ]
Thinkpad x220, Dell latitude E7270 (i7 6600U, 16 Go de RAM, ...), Thinkstation E32 modifié: i5-4570, GTX 1060 6 Gb, 16 Gb de RAM, ...
Mon nouveau blog: nuliel.fr

Hors ligne

#15 Le 01/11/2021, à 15:39

ollivier

Re : [résolu] python sous Ubuntu 20.04.3 LTS

OK,  python3 Bureau/monprogramme.py  ou python3 Documents/monprogramme.py  fonctionne si je mets ledit programme dans Bureau ou dans Documents, mais comment faire si on le mets dans un "sous-dossier", par exemple un dossier "bureau1" de Bureau ?  Désolé de poser des questions aussi "basiques" !

Hors ligne

#16 Le 01/11/2021, à 15:47

nany

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Nuliel a écrit :

Après peut être que l'éditeur de code s'occupe de cette conversion?

C’est probable en effet.



ollivier a écrit :

mais comment faire si on le mets dans un "sous-dossier", par exemple un dossier "bureau1" de Bureau ?

python3 ~/Bureau/bureau1/monprogramme.py

chemins
arborescence

Hors ligne

#17 Le 01/11/2021, à 16:12

ollivier

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Vu, donc si je comprends bien il ne faut pas d'espaces entre les caractères dans les noms des dossiers, et n'y a t-il pas moyen d'éviter d'avoir l'adresse à taper au clavier ? ...

Hors ligne

#18 Le 01/11/2021, à 16:30

nany

Re : [résolu] python sous Ubuntu 20.04.3 LTS

ollivier a écrit :

si je comprends bien il ne faut pas d'espaces entre les caractères dans les noms des dossiers

Les espaces sont possibles mais il faut alors les « échapper » soit en mettant le caractère « \ » devant chaque espace soit en encadrant le chemin de « guillemets » simples (') ou doubles (").
Exemples :

/chemin/mon\ répertoire
'/chemin/mon répertoire'
"/chemin/mon répertoire"
ollivier a écrit :

et n'y a t-il pas moyen d'éviter d'avoir l'adresse à taper au clavier ?

On peut utiliser l’auto-complétion (console, §7).
On peut aussi faire un cliquer/glisser depuis le gestionnaire de fichiers vers le terminal du fichier voulu.

Hors ligne

#19 Le 01/11/2021, à 16:46

beuguissime

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Au cas où, pour copier des blocs de code dans la console python, il vaut mieux utiliser

%cpaste

puis coller le code et terminer avec ctrl-d.

Hors ligne

#20 Le 01/11/2021, à 17:12

ollivier

Re : [résolu] python sous Ubuntu 20.04.3 LTS

Super, merci à tous pour votre efficacité !

Hors ligne