import dynamique

import dynamique - Python - Programmation

Marsh Posté le 20-08-2004 à 16:45:53    

salut, je voudrais faire un import dynamique. Je voudrais importer une classe que je ne connais pas a l'avance :
 
import "A.B.C.D"
obj = A.B.C.D.Myclass()
 
J'ai tout essaye
__import__(...,globals(),locals(),[]) : marche pas
 
Tous les imports que j'ai fais ne fonctionne pas, python me dit qu'il ne connait pas A quand je fais "obj = A.B.C.D.Myclass()"
 
je suis perdu
Merci de votre aide

Reply

Marsh Posté le 20-08-2004 à 16:45:53   

Reply

Marsh Posté le 20-08-2004 à 16:52:31    

avec eval ??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-08-2004 à 16:55:55    

import fichier.py, faut pas utiliser de ""


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 20-08-2004 à 16:58:27    

import pouet suffit normalement

Reply

Marsh Posté le 20-08-2004 à 17:02:53    

black_lord a écrit :

import pouet suffit normalement


ouip mais parfois c'est plus simple avec .py
 
enfin bon ca aide pas le posteur :whistle:  
 
j'ai trouvé :sol:  
toutes les modules dynamiques dans un module global (un répertoire) et t'y vas a coup de getattr :whistle:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 20-08-2004 à 17:04:00    

Apres import il faut le nom de la classe, comme :
 
import sys
 
Donc je ne peux pas faire
 
var = "rep.rep2.class"
import var

Reply

Marsh Posté le 20-08-2004 à 17:04:50    

KangOl a écrit :

avec eval ??

:o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-08-2004 à 17:12:11    


 
 
eval("import" + var)
ne fonctionne pas

Reply

Marsh Posté le 20-08-2004 à 17:14:19    

ça marche très bien __import__

Reply

Marsh Posté le 20-08-2004 à 17:18:32    

Taz a écrit :

ça marche très bien __import__


 
 
et bien je fais :
 
__import__("rep1.rep2.rep3.fichier" )
o = rep1.rep2.rep3.fichier.class()
 
il me dit rep1 inconnu

Reply

Marsh Posté le 20-08-2004 à 17:18:32   

Reply

Marsh Posté le 20-08-2004 à 17:29:44    

ben c'est tes fichiers qui sont pas bons

Reply

Marsh Posté le 20-08-2004 à 20:33:13    

Taz a écrit :

ben c'est tes fichiers qui sont pas bons


 
Non c vous qui etes nul  :)  
 
faut faire :
 
mod = __import__(var)
 
puis  
 
obj = mod.MyClass()
 
et voila !
c par grave, faut pas etre mauvais perdant

Reply

Sujets relatifs:

Leave a Replay

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