Want to learn the proper way for importing modules with folder
/garden
    __init__.py
    utilities.py
    someTools.py
    /plants
        __init__.py
        carrot.py
        corn.py
Inside /plants/__init__.py I have
__all__ = ['carrot', 'corn']
from . import *
inside carrot.py
def info():
    print "I'm in carrot.py"
When I do
import garden
garden.carrot.info()
# got correct result
I'm in carrot.py
My question is how do I correct namespace for utilities.py for example inside carrot.py and corn.py.  I want to use function in utilities.py
Inside carrot.py when I 
import utilities as util
# try use it and got global name error
util.someFunc()
# NameError: global name 'util' is not defined # 
Can I configure __init__.py in plants folder so that it import all the modules inside garden? Like utilities and sometools ? so I don't have to import utilities in both carrot.py and corn.py and be able to use utilities ?
note: all __init__.py files are empty.
main.py
app/ ->
    __init__.py
    package_a/ ->
       __init__.py
       fun_a.py
    package_b/ ->
       __init__.py
       fun_b.py
def print_a():
    print 'This is a function in dir package_a'
from app.package_a.fun_a import print_a
def print_b():
    print 'This is a function in dir package_b'
    print 'going to call a function in dir package_a'
    print '-'*30
    print_a()
from app.package_b import fun_b
fun_b.print_b()
if you run $ python main.py it returns:
This is a function in dir package_b
going to call a function in dir package_a
------------------------------
This is a function in dir package_a
from app.package_b import fun_b from app.package_a.fun_a import print_a
If you have app in your PYTHONPATH, then from anywhere you can >>> from app.package_...
so file in folder package_b used file in folder package_a, which is what you want. Right??
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With