[IronPython] [python] [IronPythonStudio] Namespace Classes and Assembly Files
Michael Foord
fuzzyman at voidspace.org.uk
Wed Jan 30 01:03:09 CET 2008
Pigneri, Rocco wrote:
> Dear Michael,
>
> Well, I tried this out this morning, and I noticed that the plot has
> thickened. However, let me answer your question first:
>
>
>>> I next add a new Form to the project by right-clicking on the project
>>>
>
>
>>> name in the Solution Explorer, and go to Add->New Item->Windows Form.
>>> I call this class FormTwo. FormTwo is now placed in the Forms
>>> namespace as well.
>>>
>>> If I try to use the FormTwo class in the Program.py file (i.e. I
>>>
> would
>
>>> rather start up with FormTwo rather than FormOne), Forms.FormTwo()
>>> does not do the trick. The debugger keeps reporting that the class
>>>
> is
>
>>> not found. This also happens if I add "from FormTwo import *" to the
>>>
>
>
>>> top of the file.
>>>
>>> What am I doing wrong here? I feel like I should be able to
>>>
> reference
>
>>> any class in an assembly/project from any class in the same
>>> assembly/project. I have been able to get this to work by changing
>>> the namespace class in FormTwo.py, but I feel like that is the wrong
>>> approach.
>>>
>> Can you post the actual error you get? The import and reference you
>>
> posted should work, so the exact error will tell us what is going wrong.
>
> Here is the error message. This is an exception that is thrown at
> run-time.
>
> Title: MissingMemberException was unhandled by user code.
> Description: type object 'Forms' has no attribute 'FormTwo'
>
> Now, here's where the plot thickens: if I create the solution, change
> the Program.py file to use FormTwo and then run the project *for the
> first time*, it runs fine. However, when I change the project to
> FormOne and try to run it, it throws that exception. The same happens
> in the opposite direction: if I run the program first with FormOne, then
> it fails when I try it with FormTwo. In other words, whichever Form the
> Program.py file uses in its first run is the only one that it can use.
> After that, it cannot find any other Form class.
>
>
Wow that sounds like a tangled mess - but this is only Python after all,
so it should be following deterministic rules (I assume you are running
source code or are you running a compiled executable?).
How about throwing a 'print dir(Forms)' in their so you can see if your
form classes really exist.
Michael
http://www.manning.com/foord
> Thank you,
>
> Rocco
>
> -----Original Message-----
> From: users-bounces at lists.ironpython.com
> [mailto:users-bounces at lists.ironpython.com] On Behalf Of Michael Foord
> Sent: Saturday, January 26, 2008 12:20 PM
> To: Discussion of IronPython
> Subject: Re: [IronPython] [python] [IronPythonStudio] Namespace Classes
> and Assembly Files
>
> Pigneri, Rocco wrote:
>
>> Dear all,
>>
>> I am new to Python, IronPython, and IronPythonStudio, but so far I am
>> enjoying the functionality that IPS offers me.
>>
>> One thing that confuses me, however, is the namespace classes that IPS
>>
>
>
>> creates for me. Let's say I create a Windows Forms project called
>> Forms with a default form called FormOne. FormOne is created in the
>> Forms namespace while the Program.py file is placed in the Forms0
>> namespace.
>>
>
> This is annoying (unpythonic) but is probably due to the way the CodeDom
> works - it basically creates the equivalent IronPython to the C# it
> would generate.
>
>
>>
>> I next add a new Form to the project by right-clicking on the project
>> name in the Solution Explorer, and go to Add->New Item->Windows Form.
>> I call this class FormTwo. FormTwo is now placed in the Forms
>> namespace as well.
>>
>> If I try to use the FormTwo class in the Program.py file (i.e. I would
>>
>
>
>> rather start up with FormTwo rather than FormOne), Forms.FormTwo()
>> does not do the trick. The debugger keeps reporting that the class is
>>
>
>
>> not found. This also happens if I add "from FormTwo import *" to the
>> top of the file.
>>
>> What am I doing wrong here? I feel like I should be able to reference
>>
>
>
>> any class in an assembly/project from any class in the same
>> assembly/project. I have been able to get this to work by changing
>> the namespace class in FormTwo.py, but I feel like that is the wrong
>> approach.
>>
>
> Can you post the actual error you get? The import and reference you
> posted should work, so the exact error will tell us what is going wrong.
>
> Michael Foord
> http://www.manning.com/foord
>
>
>>
>> Thank you,
>>
>> Rocco
>> ----------------------------------------------------------------------
>> --
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
More information about the Ironpython-users
mailing list