Si tu es un novice en programmation tout court, je te conseillerai dans un premier de ne pas chercher à découper ton code en plusieurs fichiers, et plutôt à comprendre les notions fondamentales (variables, types, structures de contrôle, classes, fonctions ...), quitte à d'abord tout mettre dans un seul fichier. De toutes les façons tes premiers programmes seront très simples, et tu ne vas pas te lancer dans quelques chose de trop ambitieux sans avoir bien compris les bases.
Mais bon revenons à ta question, qui nécessite quelques explications préliminaires:
Lorsque tu fais import foo, 'foo' doit être :
à l'endroit où sont présents les libs Python de ton système.
dans le même module que ton fichier courant.
Pour connaître les chemins où va chercher python tu peux faire dans une console python:
importsyssys.path
En fait le problème du point 2, c'est qu'un de tes propres fichiers peut masquer un module standard (ex: tu crées un fichier 'math.py'). C'est pourquoi à partir de Python3, la façon 2 disparaît, et tu peux du coup faire :
frommathimportcos# la c'est la lib standardfrom.mathimportta_fonction_a_toi# ton propre math.py
Note que tu peux utiliser ce comportement en Python2 en mettant from __future__ import absolute_import au début de tes fichiers.
Attention si tu veux utiliser des imports relatifs ('from .math import ') tu devras lancer ton script avec l'option '-m' (et sans le '.py') pour le considérer comme un module.
Du coup pour ta question, et ben soit :
tu mets complement/ dans le même module.
tu le mets avec les libs installées classiquement (genre dans ton virtualenv histoire de pas péter ton système).
tu modifies l'environnement Python (ce que fait virtualenv au final), genre comme ça.
[^] # Re: supposons que .
Posté par GuieA_7 (site web personnel) . En réponse au message python , fichier __init__py & virtualenv .. Évalué à 1.
Si tu es un novice en programmation tout court, je te conseillerai dans un premier de ne pas chercher à découper ton code en plusieurs fichiers, et plutôt à comprendre les notions fondamentales (variables, types, structures de contrôle, classes, fonctions ...), quitte à d'abord tout mettre dans un seul fichier. De toutes les façons tes premiers programmes seront très simples, et tu ne vas pas te lancer dans quelques chose de trop ambitieux sans avoir bien compris les bases.
Mais bon revenons à ta question, qui nécessite quelques explications préliminaires:
Lorsque tu fais
import foo, 'foo' doit être :Pour connaître les chemins où va chercher python tu peux faire dans une console python:
En fait le problème du point 2, c'est qu'un de tes propres fichiers peut masquer un module standard (ex: tu crées un fichier 'math.py'). C'est pourquoi à partir de Python3, la façon 2 disparaît, et tu peux du coup faire :
Note que tu peux utiliser ce comportement en Python2 en mettant
from __future__ import absolute_importau début de tes fichiers.Attention si tu veux utiliser des imports relatifs ('from .math import ') tu devras lancer ton script avec l'option '-m' (et sans le '.py') pour le considérer comme un module.
Du coup pour ta question, et ben soit :