On Friday 22 April 2005 07:19 am, codecraig wrote:
Ok, I have the following directory structure
C:\pycode
--> blah.py
--> mynewdir
--> __init__.py
--> abc.py
[[ C:\pycode\mynewdir\abc.py ]]
def doFoo():
print "hi"
def doBar():
print "bye"
[[ C:\pycode\mynewdir\__init__.py ]]
from mynewdir import *
This didn't work, did it? There is no module
"mynewdir.py" nor a package "mynewdir" in
the "mynewdir" directory, and I don't think import
will search up to find the container.
I suspect you meant that __init__.py says:
from abc import *
[[ C:\pycode\blah.py ]]
????
what do i import in blah.py so that I can accesss,
abc.doFoo() ?
Assuming the above, and that you want to access
it as you have written it, that would be:
from mynewdir import abc
Note that in order to use this form, you don't have
to have *anything* in mynewdir/__init__.py --- it can
be an empty file, as long as it exists.
You only need to use an import in __init__.py if you
want it to automatically run when you import the
package.
E.g. if you did:
import mynewdir
You could access your function as:
mynewdir.abc.doFoo
(which requires the import statement in __init__.py).
Cheers,
Terry
--
Terry Hancock ( hancock at anansispaceworks.com )
Anansi Spaceworks
http://www.anansispaceworks.com