[python] načtení modulu v době běhu

Jaroslav Pachola j_p_misc na centrum.cz
Středa Červen 29 14:51:21 CEST 2005


Dne Wednesday 29 June 2005 14:20 Jan Pipek napsal(a):
> Nejsem v Pythonu ještě příiš zběhlý, proto se možná ptám trochu z cesty
> (ale v referenční příručce jsem odpověď při nepříliš důkladném hledání
> nenašel). Nedá se nějakým způsobem načíst modul v době běhu programu?
>
Existuje funkce __import__, to je nejpruznejsi zpusob, jak nahrat modul. Obcas 
se hodi. V danem pripade radeji viz predchozi odpoved I. Stolpy.

> Potřebuji ve své aplikaci (jednoduchý mailový klient) rozlišit, jestli 
> se mají html zprávy zobrazovat pomocí gtkhtml2 (která není
> běžnou součástí pygtk) nebo jenom jako text.
> Případně pokud to nejde, jak byste podobnou situaci řešili?

Importovani modulu jeste neznamena, ze se musi modul pouzit. Pokud ale jde o 
to, ze  import modulu muze selhat, da se udelat treba neco jako

try:
	import module1
except ImportError:
	import module2 as module1

nebo

try:
	import module
except ImportError:
	module1 = None

...

if (module1 is None):
	doSomething()
else:
	doSomethingElse()

a podobne. V Pythonu se fantazii meze nekladou.

JP



Další informace o konferenci Python