Calling C# COM (.NET) from python

A

Andrew Falanga

Hi,

I've never programmed in python and only have a small understanding of
what is wrapped up in the terms COM and .NET. Is there a way of using
python to get a hold of objects written in C# as COM objects using
python? I'm looking for ways to avoid VBScript (which, after a couple
of weeks, I've determined to be horrid). That is, is there a way of
getting at COM objects in python that's similar to doing a
CreateObject call in VBScript (http://msdn.microsoft.com/en-us/library/
dcw63t7z.aspx)?

Thanks,
Andy
 
B

Ben Kaplan

Hi,

I've never programmed in python and only have a small understanding of
what is wrapped up in the terms COM and .NET. Is there a way of using
python to get a hold of objects written in C# as COM objects using
python? I'm looking for ways to avoid VBScript (which, after a couple
of weeks, I've determined to be horrid). That is, is there a way of
getting at COM objects in python that's similar to doing a
CreateObject call in VBScript (http://msdn.microsoft.com/en-us/
library/
dcw63t7z.aspx)?

Thanks,
Andy

I would not deal with COM at all. I personally have not used it, but
there is a version of python called IronPython that's written in C#,
so it can use .NET and, I think, other C# objects. Other people will
probably help you more, but you might want to look into that and maybe
ask this on the python-win list.
 
M

Mike Driscoll

Hi,

I've never programmed in python and only have a small understanding of
what is wrapped up in the terms COM and .NET.  Is there a way of using
python to get a hold of objects written in C# as COM objects using
python?  I'm looking for ways to avoid VBScript (which, after a couple
of weeks, I've determined to be horrid).  That is, is there a way of
getting at COM objects in python that's similar to doing a
CreateObject call in VBScript (http://msdn.microsoft.com/en-us/library/
dcw63t7z.aspx)?

Thanks,
Andy

You're probably looking for the PyWin32 package (AKA: Python for
Windows extensions). It's an external package for Python created
mainly by Mark Hammond. You can find it here: http://sourceforge.net/projects/pywin32/

It's a loose wrapper to the win32 bindings. It has a win32com module
in it. You can usually take some VB type code and tweak it slightly to
work with Python. There's some docs here:

http://docs.activestate.com/activepython/2.4/pywin32/win32_modules.html

You may also be able to use ctypes. Regardless, the PyWin32 package
has a great mailing list with helpful people that I highly recommend:
http://mail.python.org/mailman/listinfo/python-win32

Other than that, you have the option of using IronPython which can
actually import .NET modules itself. I've messed with it a little, but
I'm not fluent enough in .NET to be able to use a lot of its
capabilities. Regardless, you should read up on it as it offers lots
of interesting capabilities:

http://www.codeplex.com/IronPython

Mike
 
M

Mike Driscoll

I would not deal with COM at all. I personally have not used it, but  
there is a version of python called IronPython that's written in C#,  
so it can use .NET and, I think, other C# objects. Other people will  
probably help you more, but you might want to look into that and maybe  
ask this on the python-win list.

As I understand it, IronPython can use anything done in the CLR, so
technically I could write something in VB.NET, C# or any of the other
VS languages and then use them from within IronPython. It should be
noted that IronPython does not support most 3rd party packages that
are not pure python. As I recall, it doesn't have the complete builtin
library either, but it's close.

Reads the docs and check it out at least. If you already know .NET
languages, then you'll probably find IronPython helpful.

Mike
 
A

Andrew Falanga

As I understand it, IronPython can use anything done in the CLR, so
technically I could write something in VB.NET, C# or any of the other
VS languages and then use them from within IronPython. It should be
noted that IronPython does not support most 3rd party packages that
are not pure python. As I recall, it doesn't have the complete builtin
library either, but it's close.

Reads the docs and check it out at least. If you already know .NET
languages, then you'll probably find IronPython helpful.

Mike

To all, thanks for the great replies. I've got something to work with
here. Thanks to for the link to PyWin32 and the mailing list. That
sounds promising as does this IronPython. I wished I knew more
of .NET and python more (as my original post claims, I've never
written Python and I only wished I knew the .NET stuff better for
better footing in this). I'm very much the proverbial, "fish out of
water," as I'm a UNIX man now stuck in a Windows world.

Thanks again,
Andy
 
M

Mike Driscoll

To all, thanks for the great replies.  I've got something to work with
here.  Thanks to for the link to PyWin32 and the mailing list.  That
sounds promising as does this IronPython.  I wished I knew more
of .NET and python more (as my original post claims, I've never
written Python and I only wished I knew the .NET stuff better for
better footing in this).  I'm very much the proverbial, "fish out of
water," as I'm a UNIX man now stuck in a Windows world.

Thanks again,
Andy

Andy,

Welcome to the wonderful world of Python programming. It's fun and
cool! Windows is a complex place, but the Python crew on that PyWin32
mailing list will help you out with that stuff and the people here
will help you with your more general questions.

Last week, there was another beginner who needed some clues for where
to go for learning the language. I suggest you read that thread as it
had lots of good examples:

http://groups.google.com/group/comp.lang.python/browse_frm/thread/29278b3db85a1341#

I recommend the Dive Into Python online book too, which is listed in
the link above. There are also lots of quality physical books out
there. Let me know if you need any suggestions for those.

Have a nice day!

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top