[python] Import modulů

Petr Messner petr.messner na gmail.com
Pátek Květen 28 13:24:16 CEST 2010


Já bych řešení zkombinoval. Do sys.path dal cestu odvozenou od
__file__ (tedy to, co dáváte do os.chdir() a upravené o "../modules",
bych dal do sys.path).

import os
import sys
sys.path.append(os.path.abspath(os.path.join(__file__,  "..", "..", "modules")))

PM

2010/5/28 Radek Machulka <radek.machulka na gmail.com>:
> Zdravím,
>
> pro většinu projektů volím následující adresářovou strukturu:
>
> projekt/utils - adresář obsahující spouštěné scripty
> projekt/modules - adresář s moduly (externí kód relevantní jen k danému
> projektu)
> projekt/conf - konfigurační soubory
> projekt/data - adresář obsahující výsledky běhu programů
>
> Import externích funkcí z modulů v projekt/modules resim takto:
>
> import sys
> sys.path.append("./../modules/")
> from modul import funkce
>
> Problém pochopitelně nastane v případě, že script nespouštím z adresáře
> projekt/utils, resp. pokud je os.getcwd() různá od projekt/utils.
> Zatím to řeším nastavením pracovního adresáře:
>
> import os
> os.chdir(os.path.split(os.path.abspath(__file__))[0])
>
> Každopádně mi to nepřijde rozhodne dvakrát elegantní.
> Jak to řešíte vy?
>
> Dík
> Radek


Další informace o konferenci Python