Python importing subdirectories
Question: I'm trying to import all files from a sub-directory, so I figured I could
write `__init__.py` in that sub-directory to import the files. However, when I
do this it does not seem to import anything.

File structure:

    
    
    prog.py
    module/
        __init__.py
        code.py
    

Code for `prog.py`: `pass`

Code for `__init__.py`: `import code`

Code for `code.py`: `print('hello')`

When I run prog.py nothing happens. Why does it not print `hello`, and is
there a better way to easily import everything from a sub-directory?


Answer: If you have the following structure:

    
    
    package
      __init__.py
      module.py
    

In `__init__.py` you can either try this:

    
    
    import package.module
    

or this:

    
    
    from . import module
    

This way, if `package` is in your `PYTHONPATH`, you'll get the expected
behaviour:

    
    
    >>> import package
    hello
    

