I'm glad to see people are finding this sample useful!

My first suggestion is to verify you have an __init__.py in Cheesemonger. I'm 
pretty sure the answer is yes but just to be certain...

Second, using a command such as:
        E:\Temp>ipy F:\ipsd\IronPython\Samples\Pyc\pyc.py 
Cheesemonger\Counter.py Cheesemonger\Shopkeeper.py Cheesemonger\__init__.py 
/main:main.py /out:CM.dll
should do what I *think* you're trying to do. This creates an (executable) 
CM.dll based on main.py which pretty much follows your series of files except 
that my main.py invokes a function from Cheesemonger.Counter. When I run 
CM.dll, the output verifies it is indeed using modules from Cheesemonger.*

Last but definitely not least, please stay away from using tools like ildasm, 
reflector, etc to examine the contents of IronPython created DLLs. What you'll 
find there is almost certainly not what you'd expect as mentioned on the 
Codeplex Samples page.




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of William Reade
Sent: Friday, September 29, 2006 5:27 AM
To: Discussion of IronPython
Subject: [IronPython] Compilation difficulties

Hi all

I've been playing with the (excellent) Pyc sample, and I've got stuck. I
have a series of files a bit like the following:

project/
| main.py
+ Cheesemonger/
  | Shopkeeper.py
  | Counter.py

...in which main.py contains statements like:

from Cheesemonger.Counter import Counter

...and Counter.py also contains statements like:

from Cheesemonger.Shopkeeper import Shopkeeper

---

This is all very well, but I can't work out how to compile a
Cheesemonger.dll in which the above imports still function -- when I
inspect it with ildasm, the dll contains "Counter" and "Shopkeeper"
rather than "Cheesemonger.Counter" and "Cheesemonger.Shopkeeper".

I can "fix" the issue by undisambiguating the imports:

clr.AddReference("Cheesemonger")
from Counter import Counter

...and:

from Shopkeeper import Shopkeeper

...but we've been burned by ambiguous imports before and would prefer
not to reintroduce them (life can get confusing when every directory
contains its own "UnitTests" directory ;)).

Is there any way of compiling a directory (and subdirectories) into a
single dll, such that no import statements need to be changed? A quick
look at the IP source left me none the wiser, I'm afraid.

Cheers
William

_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
users mailing list
users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to