import dir1.dir2.mod


from dir1.dir2.mod import x


dir0\dir1\dir2\mod.py                        # Lub mod.pyc, mod.so i tak dalej


import C:\mycode\dir1\dir2\mod               # Błąd - niepoprawna składnia


import dir1.dir2.mod


dir0\dir1\dir2\mod.py


import dir1.dir2.mod


dir0\                                        # Pojemnik ze ścieżki wyszukiwania modułów
     dir1\
          __init__.py
          dir2\
               __init__.py
               mod.py

               
# Plik dir1\__init__.py

print 'dir1 init'
x = 1

# Plik dir1\dir2\__init__.py

print 'dir2 init'
y = 2

# Plik dir1\dir2\mod.py

print 'w mod.py'
z = 3               


% python
>>> import dir1.dir2.mod                     # Pierwszy import wykonuje pliki inicjalizacyjne
dir1 init
dir2 init
w mod.py
>>>
>>> import dir1.dir2.mod                     # Kolejne importy tego nie robią
>>>
>>> reload(dir1)
dir1 init
<module 'dir1' from 'dir1\__init__.pyc'>
>>>
>>> reload(dir1.dir2)
dir2 init
<module 'dir1.dir2' from 'dir1\dir2\__init__.pyc'>
           

>>> dir1
<module 'dir1' from 'dir1\__init__.pyc'>
>>> dir1.dir2
<module 'dir1.dir2' from 'dir1\dir2\__init__.pyc'>
>>> dir1.dir2.mod
<module 'dir1.dir2.mod' from 'dir1\dir2\mod.pyc'>


>>> dir1.x
1
>>> dir1.dir2.y
2
>>> dir1.dir2.mod.z
3


>>> dir2.mod
NameError: name 'dir2' is not defined
>>> mod.z
NameError: name 'mod' is not defined


% python
>>> from dir1.dir2 import mod                # Ścieżka podana jedynie tutaj
dir1 init
dir2 init
w mod.py
>>> mod.z                                    # Nie powtarzamy ścieżki
3
>>> from dir1.dir2.mod import z
>>> z
3
>>> import dir1.dir2.mod as mod              # Użycie krótszej nazwy
>>> mod.z
3

import utilities


import database.client.utilities


system1\
   utilities.py                              # Wspólne funkcje i klasy narzędzi
   main.py                                   # Uruchamia program
   other.py                                  # Importuje utilities w celu załadowania narzędzi


system2\
   utilities.py                              # Wspólne narzędzia
   main.py                                   # Uruchamia program
   other.py                                  # Importuje narzędzia


import utilities
utilities.func('mielonka')


root\
     system1\
             __init__.py
             utilities.py
             main.py
             other.py
     system2\
             __init__.py
             utilities.py
             main.py
             other.py
     system3\                                # Tutaj lub w dowolnym innym miejscu
             __init__.py                     # Tutaj nasz nowy kod
             myfile.py


import system1.utilities
import system2.utilities
system1.utilities.function('mielonka')
system2.utilities.function('jajka')


from win32com.client import constants, Dispatch