[Python.NET] Calling C# from Python 2.3

Brian Lloyd brian at zope.com
Mon Jan 3 21:23:36 CET 2005


Hi Amod -

Is the main issue the fact that you have to use Python 2.3? If so, you could
use the beta 3 release (which was based on 2.3), or see the README.txt
for instructions on building the b4 release for Python 2.3.

In any case, you should be able to just copy Python.Runtime.dll and CLR.dll
from the PythonNet directory to the root directory of your python
installation
(presuming they were built against 2.3), and then 'import CLR' from your
exising Python...



Brian Lloyd        brian at zope.com
V.P. Engineering   540.361.1716
Zope Corporation   http://www.zope.com


  -----Original Message-----
  From: pythondotnet-bounces at python.org
[mailto:pythondotnet-bounces at python.org]On Behalf Of Amod Kulkarni
  Sent: Monday, January 03, 2005 2:38 AM
  To: pythondotnet at python.org
  Subject: [Python.NET] Calling C# from Python 2.3


  Hi,



  I know PythonNet has been specially designed to handle .NET/CLR
compatibility but because of some other restrictions I want to use Python
2.3 to access a C# function.

  First of all is it possible? I am trying with following piece of code in
C# (Server app) and python (client app).







  This is a class library in C# which is compiled and registered with
following commands.

  csc /target:library Class1.cs

  regasm Try2005.dll /tlb:Try2005.tlb





  using System;

  using System.Runtime.InteropServices;



  namespace Try2005

  {

        public class TestingCSBC

        {

              [Guid("1EB394AB-2D4A-4a52-9F22-E8ACAED4800F")]

                    public interface IManagedInterface

              {

                    int PrintHi(string name);

              }



              [Guid("2FD76301-489A-4dc3-BF6B-5DF6FCE96CB8")]

                    public class InterfaceImplementation : IManagedInterface

              {

                    public int PrintHi(string name)

                    {

                          Console.WriteLine("Hello, {0}!", name);

                          //TestCSBCClass obj = new
TESTDLLCOMLib.TestCSBCClass();

                          //obj.Displaymessage("In C# application!!");

                          return 33;

                    }

              }

        }

  }





  Python code:



  import win32com.client

  try:

      serverObj = win32com.client.Dispatch("Try2005.TestingCSBC")

  except Exception,e:

      print "Dispatch error",e

  try:

      serverObj.PrintHi("But will it work on Tribon??")

  except Exception,e:

      print "Error while Calling C# function",e





  After running the above Py script I am getting following error output.



  Dispatch error (-2147024894, 'The system cannot find the file specified.',
None, None)

  Error while Calling C# function name 'serverObj' is not defined





  Any pointers would be greatly appreciated.



  Thanks in advance.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythondotnet/attachments/20050103/56a764cf/attachment.html


More information about the PythonDotNet mailing list