[Python.NET] Using Third Party C# Libraries

Jim Hargrave jhargraveiii at comcast.net
Sat Mar 3 05:37:12 CET 2007


No worries. Python.NET is a remarkable solution - it's well worth a 
small inconvenience to be able to use it.

Jim


Brian Lloyd wrote:
> Sorry about that – someone had asked for info on using generics so I put up
> in-progress documentation for the next rev and haven’t had time to work on
> making some of the stuff true yet :(
> 
> I’ll try to at least get the docs to a sane state to avoid confusion 
> over the weekend.
> 
> -Brian
> 
> 
> On 3/2/07 10:30 AM, "angel ignacio colmenares laguado" 
> <angel.ignacio.colmenares at gmail.com> wrote:
> 
>     1. yes, you  are rigth , clr.AddReference does not work ( there is
>     not method AddReference in clr.dll nor PythonRuntime.dll).
> 
>     But you cant do this:
> 
>     > >>import clr
>     > >>import System.Windows.Forms as WinForms
>     > >>from System.Drawing import Size, Point
>     > >>f=WinForms.Form()
>     > >>f.Text = "Hello World From Python"
>     > >>f.AutoScaleBaseSize = Size(5, 13)
>     > >> f.ClientSize = Size(392, 117)
>     > >>h = WinForms.SystemInformation.CaptionHeight
>     > >>f.MinimumSize = Size(392, (117 + h))
>     > >>f.dgv=WinForms.DataGridView()
>     > >>f.dgv.Location = Point(2, 2)
>     > >>button = WinForms.Button()
>     > >>button.Location = Point(256, 64)
>     > >>button.Text = "Click Me!"
>     > >>f.Controls.Add(button)
>     > >>f.Controls.Add(f.dgv)
>     > >> WinForms.Application.Run(f)
> 
>     #  import Config class  from  Nini.dll assembly
> 
>     > >>import Nini.Config as config
>     > >>config= Config.XmlConfigSource("DbManager.xml")
>     > >>print config.Configs["firebird2.0"].Get("providerName")
>     FirebirdSql.Data.FirebirdClient
> 
>     # import class FirebirdMetaData  from
>     Mono.Data.SqlSharp.DatabaseBrowser.dll
> 
>     > >>from Mono.Data.SqlSharp.DatabaseBrowser import FirebirdMetaData
>     > >>me=FirebirdMetaData()
>     > >>print me
>     Mono.Data.SqlSharp.DatabaseBrowser.FirebirdMetaData
>     > >>me.ToString()
>     Mono.Data.SqlSharp.DatabaseBrowser.FirebirdMetaData
> 
> 
> 
>     2. yes the old  CLR still works
> 
>     from CLR.System.Reflection import Assembly
>     print Assembly
>     <class 'System.Reflection.Assembly'>
> 
>     for samples checkout
>     http://pythonnet.svn.sourceforge.net/viewvc/pythonnet/trunk/pythonnet/demo/
> 
> 
> 
>     angel ignacio
> 
>     2007/3/2, Jim Hargrave
>     <jhargraveiii at comcast.net
>      <mailto:jhargraveiii at comcast.net> >:
> 
>         I installed the Python.Net for 2.0 (pre-compiles binaries) from
>         the link
>         below.  But I am unable to get this working:
> 
>          >>> import clr  # this works
>          >>> clr.AddReference("System.Windows.Forms")
>         Traceback (most recent call last):
>            File "<input>", line 1, in ?
>         AttributeError: AddReference
> 
>         According to the readme file this is supposed to work and matches up
>         with the IronPython syntax. Am I doing something wrong?
> 
>         I copied the Python.Net for 2.0 binaries over my Python 2.4 install
>         (overwriting my python.exe).
> 
>         All sample Python.NET files worked fine - but they use the old
>         "CLR" syntax.
> 
>         Jim
> 
> 
>         angel ignacio colmenares laguado wrote:
>         >  for Python.NET support for .NET 2.0:
>         >
>         >  1. Download de latest source from
>         >  http://pythonnet.svn.sourceforge.net/viewvc/pythonnet/trunk/
>         >
>         >
>         >  (you can use Tortoise SVN in win*)
>         >
>         >  2. change in  importhook.cs :
>         >
>         >  line 25
>         >  static *Clr*Module clr;   with        static *clr*Module clr;
>         >
>         >
>         >  line 50
>         >  clr = new *Clr*Module("clr");     with            clr = new
>         >  *clr*Module();
>         >
>         >  line 51
>         >
>         >  Runtime.PyDict_SetItemString(dict, "clr", *clr*.pyHandle);
>         >  with
>         >  Runtime.PyDict_SetItemString
>         >  (dict, "clr", *root*.pyHandle);
>         >
>         >
>         >  line 111:
>         >
>         >  Runtime.Incref(*clr*.pyHandle);
>         >  with
>         >  Runtime.Incref(*root*.pyHandle);
>         >
>         >
>         >  line 112:
>         >  return *clr*.pyHandle;
>         >
>         >  with
>         >  return *root*.pyHandle;
>         >
>         >
>         >  3. Change makefile with this:
>         >
>         >
>         >  ILDASM=ildasm.exe
>         >  ILASM=/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727/ilasm.exe
>         >  CSC=/c/WINDOWS/Microsoft.NET/Framework/v2.0.50727/csc.exe
>         >
>         >
>         >  all: python.exe
>         >
>         >  python.exe: Python.Runtime.dll
>         >        cd src; cd console; \
>         >
>         >        $(CSC) -nologo -target:exe -out:../../python.exe \
>         >          -reference:../../Python.Runtime.dll -recurse:*.cs
>         >        cd ..; cd ..;
>         >
>         >
>         >
>         >  Python.Runtime.dll:clr.dll
>         >        cd src; cd runtime; \
>         >        $(CSC) -nologo -unsafe -target:library
>         -out:../../Python.Runtime.dll \
>         >
>         >         -reference:clr.dll \
>         >  /       -recurse:*.cs
>         >        cd ..; cd ..;
>         >
>         >
>         >  /clr.dll:
>         >        $(ILASM) -nologo -dll -quiet -output=clr.dll \
>         >        ./src/runtime/clrmodule.il;
>         >
>         >
>         >
>         >  4. using Mingw32 (msys) execute:
>         >
>         >  makefile
>         >
>         >
>         >  you get :Python.Runtime.dll, clr.dll and pyton.exe
>         >   ready for net 2.0
>         >
>         >
>         >  5. put Python.Runtime.dll and crl.dll in your python24 directory.
>         >
>         >
>         >  6. you can get ready binaries (Python.Runtime.dll
>         >  , clr.dll and pyton.exe) for Net 2.0  from :
>         >
>         >  http://angel.ignacio.colmenares.googlepages.com/pythonnet
>         >
>         >  7. Some screenshots in :
>         >
>         >  http://angel.ignacio.colmenares.googlepages.com/pythonnet/
>          <http://angel.ignacio.colmenares.googlepages.com/pythonnet/>
>         >   <http://angel.ignacio.colmenares.googlepages.com/pythonnet>/
>         >
>         >
>         >  angel ignacio colmenares laguado
>         >
>         >
>         >
>         ------------------------------------------------------------------------
>         >
>         >  _________________________________________________
>         >  Python.NET mailing list -
>         PythonDotNet at python.org
>         >  http://mail.python.org/mailman/listinfo/pythondotnet
> 
>         _________________________________________________
>         Python.NET mailing list -
>         PythonDotNet at python.org
>         http://mail.python.org/mailman/listinfo/pythondotnet
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _________________________________________________
> Python.NET mailing list - PythonDotNet at python.org
> http://mail.python.org/mailman/listinfo/pythondotnet



More information about the PythonDotNet mailing list