Echec d'importation d'un module Python

Echec d'importation d'un module Python - Python - Programmation

Marsh Posté le 29-01-2024 à 12:02:56    

Bonjour tout le monde,
 
J'apprends Python. Je voudrais importer un module Python rédigé sur Visual Code Studio à partir de mon environnement Cygwin64.
Mon dossier "calculator" se trouve ici : C: /cygwin64/home/my_username/calculator
Mon dossier calculator comprends 3 fichiers :  
operations.py
__init__.py
main.py
 

  • operations.py :
Code :
  1. def sum (left_param, right_param):
  2.     return left_param + right_param
  3. def substraction (left_param, right_param):
  4.     return left_param - right_param
  5. def multiplication (left_param, right_param):
  6.     return left_param * right_param
  7. def division (left_param, right_param):
  8.     try:
  9.         return left_param / right_param
  10.     except ZeroDivisionError:
  11.         print ("Erreur : Division par zéro!" )


 

  • __init__.py : ce fichier ne contient rien.


  • main.py :
Code :
  1. import calculator.operations
  2. if __name__ == '__main__':
  3.     resultat = calculator.operations.sum(10, 30)
  4.     print(resultat)


 
Lorsque je tape la commande "python3 main.py", j'obtiens la réponse suivante :

Code :
  1. $ python3 main.py
  2. Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.


 
Mon fichier d'installation de Python se trouve ici : C: /Users/my_username/AppData/Local/Programs/Python/Python312/python.exe
 
Mon problème peut-il être réglé par une variable d'environnement qui permettrait à Cygwin de trouver Python? J'ai essayé plein de choses et je suis toujours dans le brouillard... J'espère que vous pourrez m'aider à importer mon module. Merci par avance.


Message édité par relphe le 29-01-2024 à 12:12:16

---------------
â
Reply

Marsh Posté le 29-01-2024 à 12:02:56   

Reply

Marsh Posté le 29-01-2024 à 14:12:53    

Alors tu appelles python3 mais ton executable s'appelle python.
 
Essaie plutôt python main.py.
 
Tu n'es pas obligé de passer par cygwin, mais directement ouvrir une console cmd et taper python main.py dans le répertoire cible. Par contre il faut que ton exécutable python soit dans le PATH windows.
 
Par ailleurs ton import calculator.operations ne fonctionnera pas, c'est directement import operations, et faire resultat = operations.sum(10,30)
 
Résultat avant et après modif :  
 
https://i.imgur.com/7M4OTF9.png
 
 
edit -> Explication :  
 
python main.py dans ton répertoire "C:/cygwin64/home/my_username/calculator" signifie que ton chemin d'exécution est le répertoire courant où tu te trouves est "C:/cygwin64/home/my_username/calculator". Dans lequel se trouve main.py et operations.py
 
lorsque tu fais des import avec python, tu importes soit à partir du répertoire courant, soit à partir du chemin des libs de python. Dans ton cas c'est donc : "C:\Users\my_username\AppData\Local\Programs\Python\Python312\Lib\site-packages".
 
import a.b.c signifie que tu vas importer le module c.py qui se trouve dans le sous répertoire a/b/ , soit dans ton répertoire courant , soit dans le répertoire des libs.
 
Donc import calculator.operations signifierait que operations.py se trouve dans le sous répertoire calculator de ton répertoire courant, soit : "C:/cygwin64/home/my_username/calculator/calculator/" , ce qui n'est pas le cas ici.
 
Idem si tu importes un module installé dans site-packages ( rep / sous rep / ... / modulexxx.py ).
 
 
Et si tu utilises virtualenv ( pour isoler ton environnement) c'est pareil sauf que les libs sont dans ton environnement isolé.
 


Message édité par xilebo le 29-01-2024 à 14:21:00
Reply

Marsh Posté le 29-01-2024 à 15:39:41    

Merci xilebo pour tes explications! Je comprends tout  :bounce:  
... et j'ai finalement saisi le bon PATH.


Message édité par relphe le 29-01-2024 à 16:25:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed