Yeah, the very strange this is that __package__ (in that code in Importer.cs) is done BEFORE the module is even loaded. I don't see how it could be ever setting the __package__ attribute correctly. In CPython, import.c is about as "confusing" as Importer.cs, so at least IP is compatible with CPython in that respect :-)
I'll continue to dig into import.c and see what I can determine about __package__ Thanks, slide On Wed, Dec 14, 2011 at 10:19 PM, Dino Viehland <di...@microsoft.com> wrote: > It happens in Importer.cs – there’s a comment saying “// explicit > relative import, calculate and store __package__”**** > > ** ** > > It also happens in imp.new_module, when creating the sys module, and in > PythonContext.CreateBuiltinModule, but I think those are all much less > interesting.**** > > ** ** > > Import bugs are really tough… Anyone who has worked on the importer code > has never looked at the CPython source code to see how it works – so > there’s subtle issues like this. I’d suggest looking at CPython where it > sets it and then making IronPython work the same. **** > > ** ** > > *From:* ironpython-users-bounces+dinov=microsoft....@python.org [mailto: > ironpython-users-bounces+dinov=microsoft....@python.org] *On Behalf Of * > Slide > *Sent:* Wednesday, December 14, 2011 9:03 PM > *To:* ironpython-users@python.org > *Subject:* [Ironpython-users] __package__**** > > ** ** > > Currently, I am working on implementing zipimport. I have modules being > imported from egg files (very early and not a lot of testing done yet), but > I notice that the __package__ attribute is not getting set up correctly, > e.g.:**** > > ** ** > > Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] > on win**** > > 32**** > > Type "help", "copyright", "credits" or "license" for more information.**** > > >>> import oauth**** > > >>> dir(oauth)**** > > ['__builtins__', '__doc__', '__file__', '__loader__', '__name__', > '__package__',**** > > '__path__']**** > > ** ** > > ** ** > > IronPython 3.0 DEBUG (3.0.0.0) on .NET 4.0.30319.237**** > > Type "help", "copyright", "credits" or "license" for more information.**** > > >>> import oauth**** > > >>> dir(oauth)**** > > ['__builtins__', '__doc__', '__file__', '__loader__', '__name__', > '__path__']**** > > ** ** > > ** ** > > I see in the code that there are references to __package__, but following > where it it set is proving to be a bit difficult. Can someone point me in > the right direction?**** > > ** ** > > Thanks,**** > > ** ** > > slide**** > > Website: http://earl-of-code.com**** > > ** ** > -- slide-o-blog http://slide-o-blog.blogspot.com/
_______________________________________________ Ironpython-users mailing list Ironpython-users@python.org http://mail.python.org/mailman/listinfo/ironpython-users