En Thu, 12 Jul 2007 23:36:16 -0300, bvdp <[EMAIL PROTECTED]> escribió:
> I'm going quite nutty here with an import problem. I've got a fairly > complicated program (about 12,000 lines in 34 modules). I just made > some "improvements" and get the following error: > > bob$ mma > Traceback (most recent call last): > File "/usr/local/bin/mma", line 55, in <module> > import MMA.main > File "/usr/local/share/mma/MMA/main.py", line 33, in <module> > import MMA.docs > File "/usr/local/share/mma/MMA/docs.py", line 34, in <module> > import MMA.grooves > File "/usr/local/share/mma/MMA/grooves.py", line 41, in <module> > import MMA.auto > File "/usr/local/share/mma/MMA/auto.py", line 35, in <module> > import MMA.parse > File "/usr/local/share/mma/MMA/parse.py", line 2052, in <module> > 'AUTHOR': MMA.docs.docAuthor, > AttributeError: 'module' object has no attribute 'docs' > > I can fix this by deleting a line in docs.py. Just take out the > "import MMA.grooves" and all works. What I really don't get is that in > the middle of this module which is now NOT loading "grooves.py" I have > a command to access a function in that module and it works. > > Yes, grooves.py has an import docs.py. And there are lots of other > such imports in the program. > > So, I have to assume that the error is being generated by some other > modules loading in the grooves.py stuff ... but really have no idea. > > Is there anything I can do to trace though this and get it working > properly? See http://effbot.org/zone/import-confusion.htm Try to move the circular references later in the code (maybe inside a function, when it is required), or much better, refactor it so there is no circularity. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list