J'utilise 2 répertoires ou sont situés mes modules ( par ex /module1 et
/module2 ). Dans ces 2 repertoires je retrouve un module nommé config.py.
Dans /module1/config.py j'ai une variable dbname = "toto"
et dans /module2/config.py j'ai une variable dbname = "titi"
Ensuite dans mon script test.py je fais :
import sys
sys.path.insert(1, './module1')
import config as config1
print config1.dbname
sys.path.insert(0, './module2')
import config as config2
print config2.dbname
et j'obtiens :
toto
toto
Pourquoi je ne vais pas chercher le bon module lors de import config as
config2 ???
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
rafi
bonjour,
ReM wrote:
import sys sys.path.insert(1, './module1') import config as config1 print config1.dbname sys.path.insert(0, './module2') import config as config2 print config2.dbname
et j'obtiens :
toto toto
Pourquoi je ne vais pas chercher le bon module lors de import config as config2 ???
l'insertion dans le chemin des modules de python doit se faire par ajout "à la fin". donc lorsqu'il recherche config il le trouve dans ./module1. de plus, comme le module config est déjà chargé, il ne doit même pas essayer de le recharger.
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
(*) il faut que module1 et module2 soient dans le chemin des modules de python et créer un fichier (vide c'est souvent suffisant) __init__.py dans chacun des répertoires
hth
-- rafi
"Imagination is more important than knowledge." (Albert Einstein)
bonjour,
ReM wrote:
import sys
sys.path.insert(1, './module1')
import config as config1
print config1.dbname
sys.path.insert(0, './module2')
import config as config2
print config2.dbname
et j'obtiens :
toto
toto
Pourquoi je ne vais pas chercher le bon module lors de import config as
config2 ???
l'insertion dans le chemin des modules de python doit se faire par ajout
"à la fin". donc lorsqu'il recherche config il le trouve dans ./module1.
de plus, comme le module config est déjà chargé, il ne doit même pas
essayer de le recharger.
la solution est peut être, si tu ne veux pas nommer différemment les
deux fichiers config.py, de considérer les répertoires module1 et
module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
(*) il faut que module1 et module2 soient dans le chemin des modules de
python et créer un fichier (vide c'est souvent suffisant) __init__.py
dans chacun des répertoires
hth
--
rafi
"Imagination is more important than knowledge."
(Albert Einstein)
import sys sys.path.insert(1, './module1') import config as config1 print config1.dbname sys.path.insert(0, './module2') import config as config2 print config2.dbname
et j'obtiens :
toto toto
Pourquoi je ne vais pas chercher le bon module lors de import config as config2 ???
l'insertion dans le chemin des modules de python doit se faire par ajout "à la fin". donc lorsqu'il recherche config il le trouve dans ./module1. de plus, comme le module config est déjà chargé, il ne doit même pas essayer de le recharger.
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
(*) il faut que module1 et module2 soient dans le chemin des modules de python et créer un fichier (vide c'est souvent suffisant) __init__.py dans chacun des répertoires
hth
-- rafi
"Imagination is more important than knowledge." (Albert Einstein)
F. Petitjean
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1 si je ne m'abuse.
(*) il faut que module1 et module2 soient dans le chemin des modules de python et créer un fichier (vide c'est souvent suffisant) __init__.py dans chacun des répertoires
--
Ce qui se conçoit bien s'énonce clairement Et les mots pour le dire viennent aisément. Boileau Despréaux (dans l(Art Poétique)
la solution est peut être, si tu ne veux pas nommer différemment les
deux fichiers config.py, de considérer les répertoires module1 et
module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1
si je ne m'abuse.
(*) il faut que module1 et module2 soient dans le chemin des modules de
python et créer un fichier (vide c'est souvent suffisant) __init__.py
dans chacun des répertoires
--
Ce qui se conçoit bien s'énonce clairement
Et les mots pour le dire viennent aisément.
Boileau Despréaux (dans l(Art Poétique)
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1 si je ne m'abuse.
(*) il faut que module1 et module2 soient dans le chemin des modules de python et créer un fichier (vide c'est souvent suffisant) __init__.py dans chacun des répertoires
--
Ce qui se conçoit bien s'énonce clairement Et les mots pour le dire viennent aisément. Boileau Despréaux (dans l(Art Poétique)
rafi
F. Petitjean wrote:
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1 si je ne m'abuse.
les deux sont corrects, mais cette seconde forme est peut être plus claire.
-- rafi
"Imagination is more important than knowledge." (Albert Einstein)
F. Petitjean wrote:
la solution est peut être, si tu ne veux pas nommer différemment les
deux fichiers config.py, de considérer les répertoires module1 et
module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1
si je ne m'abuse.
les deux sont corrects, mais cette seconde forme est peut être plus claire.
--
rafi
"Imagination is more important than knowledge."
(Albert Einstein)
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1 si je ne m'abuse.
les deux sont corrects, mais cette seconde forme est peut être plus claire.
-- rafi
"Imagination is more important than knowledge." (Albert Einstein)
Christophe Cavalaria
rafi wrote:
F. Petitjean wrote:
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1 si je ne m'abuse.
les deux sont corrects, mais cette seconde forme est peut être plus claire.
Il me semble que la forme from * import * pose problème en cas de reference circulaire entre les modules. Je conseillerais de ne pas l'utiliser si possible :)
rafi wrote:
F. Petitjean wrote:
la solution est peut être, si tu ne veux pas nommer différemment les
deux fichiers config.py, de considérer les répertoires module1 et
module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1
si je ne m'abuse.
les deux sont corrects, mais cette seconde forme est peut être plus
claire.
Il me semble que la forme from * import * pose problème en cas de reference
circulaire entre les modules. Je conseillerais de ne pas l'utiliser si
possible :)
la solution est peut être, si tu ne veux pas nommer différemment les deux fichiers config.py, de considérer les répertoires module1 et module2 comme des packages python(*). ensuite, tu peux faire:
import module1.config as config1
from module1 import config as config1 si je ne m'abuse.
les deux sont corrects, mais cette seconde forme est peut être plus claire.
Il me semble que la forme from * import * pose problème en cas de reference circulaire entre les modules. Je conseillerais de ne pas l'utiliser si possible :)