Newbie packages Q
Steve Holden
steve at holdenweb.com
Sun Oct 7 08:16:07 EDT 2007
MarkyMarc wrote:
> Hi All,
>
> I do not understand the packages system in python. I have read this
> http://docs.python.org/tut/node8.html a 100 times and I can not get it
> to work.
>
> I make a test app like this:
> *******************************
> Test/
> __init__.py (a empty file)
> apack/
> __init__.py (a empty file)
> atest.py
> bpack/
> __init__.py (a empty file)
> btest.py
> *******************************
> atest.py:
> from Test.bpack import btest
>
> def printA():
> print "This is Atest from Apack"
>
> def printbtest():
> print btest.printB()
>
> print printA()
> print printbtest()
> *******************************
> btest.py:
> from Test.apack import atest
>
> def printB():
> print "This is Btest from Bpack"
>
> def printatest():
> print atest.printA()
>
> print printatest()
> *******************************
>
> All I get is an import error: ImportError: cannot import name x
>
> I can remove the import statements an use the Test package quit normal
> but when I try to make intra-pacage references I get the import error.
>
> I must be missing something, could any one point me at what.
>
> Thank you.
>
Would it hep to observe that the atest and btest submodules attemot to
import each other?
There is no reason I can see for apack and bpack to be subpackages. Why
not just rename atest.py as apack.py at the same level as the Test
package's __init__.py, and in the same way make btest.py bpack.py.
Then the __init__.py can do:
from apack import printA
from bpack import printB
and your main program can do
import Test
Test.printA(...)
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Sorry, the dog ate my .sigline so I couldn't cat it
More information about the Python-list
mailing list