[IronPython] Cyclic Imports in Compiled Modules - Blocker

Michael Foord fuzzyman at voidspace.org.uk
Sun Sep 21 12:21:35 CEST 2008


Srivatsn Narayanan wrote:
> Thanks Michael. I've filed both the issues a high pri bugs in Codeplex:
>
> http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=18575
> http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=18576
>   

Cool - thanks Sri.

Michael

> I'll let you know once they are fixed.
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Michael Foord
> Sent: Friday, September 19, 2008 4:30 AM
> To: Discussion of IronPython
> Subject: Re: [IronPython] Cyclic Imports in Compiled Modules - Blocker
>
> Ok - minimal repro attached.
>
> Inside the zip folder are two folders - "compiled" and "uncompiled".
> Both have a 'test.py' script with an accompanying package.
>
> 'test.py' merely does 'import package.module1'.
>
> The package contains 'module1.py' and 'module2.py' which print when they are first imported, and they import each other.
>
> When you execute 'test.py' in the "uncompiled" folder with IronPython 2.0 B5 it outputs:
>
> Imported package module 1
> Imported package module 2
> Done
> Done
>
> If you do the same in the "compiled" folder it cycles the 'Imported ...'
> lines forever...
>
> In order to get compiled packages working I added the following to the
> '__init__.py':
>
>     import clr
>     from System.Reflection import Assembly
>     from System.IO import Path
>
>     this_dir = Path.GetDirectoryName(__file__)
>     ass = Assembly.LoadFile(Path.Combine(this_dir, 'modules.dll'))
>     clr.AddReference(ass)
>
> As far as I can tell you need to do something like this in order to be able to import compiled modules from a package.
>
> Michael Foord
>
>
>
> Michael Foord wrote:
>   
>> Hello guys,
>>
>> I've been attempting to create a binary distribution of Resolver One
>> using clr.CompileModules with IronPython 2.0 Beta 5.
>>
>> The framework basically works - modulo the fact that subpackages in
>> compiled assemblies don't work. However cyclic imports inside compiled
>> modules don't work.
>>
>> We have some cyclic imports inside one of our packages. The code works
>> under IronPython 2. I haven't yet attempted a minimal repro, *but*
>> with prints inside the modules I can verify that the cyclic imports
>> re-executes the prints in a cycle... never to escape.
>>
>> I'll attempt a minimal repro and repost here. This is going to block
>> us on moving to IronPython 2 unfortunately.
>>
>> All the best,
>>
>> Michael
>>
>>     
>
>
> --
> http://www.ironpythoninaction.com/
> http://www.voidspace.org.uk/
> http://www.trypython.org/
> http://www.ironpython.info/
> http://www.resolverhacks.net/
> http://www.theotherdelia.co.uk/
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>   


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/
http://www.trypython.org/
http://www.ironpython.info/
http://www.theotherdelia.co.uk/
http://www.resolverhacks.net/




More information about the Ironpython-users mailing list