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