Skip to content

Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

patstew/pythonnet

 
 

Repository files navigation

pythonnet

Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

Build status

Features not yet integrated into the main branch:

  • Python 3 support
  • Subclassing managed types in Python

  • All calls to python should be inside a "using (Py.GIL()) {/* Your code here */}" block.
  • Import python modules using dynamic mod = Py.Import("mod"), then you can call functions as normal, eg mod.func(args).
  • Use mod.func(args, Py.kw("keywordargname", keywordargvalue)) to apply keyword arguments.
  • All python objects should be declared as 'dynamic' type.
  • Mathematical operations involving python and literal/managed types must have the python object first, eg np.pi2 works, 2np.pi doesn't

EG:

static void Main(string[] args)
{
  using (Py.GIL()) {
    dynamic np = Py.Import("numpy");
    dynamic sin = np.sin;
    Console.WriteLine(np.cos(np.pi*2));
    Console.WriteLine(sin(5));
    double c = np.cos(5) + sin(5);
    Console.WriteLine(c);
    dynamic a = np.array(new List<float> { 1, 2, 3 });
    dynamic b = np.array(new List<float> { 6, 5, 4 }, Py.kw("dtype", np.int32));
    Console.WriteLine(a.dtype);
    Console.WriteLine(b.dtype);
    Console.WriteLine(a * b);
    Console.ReadKey();
  }
}

outputs:

1.0  
-0.958924274663
-0.6752620892
float64
int32
[  6.  10.  12.]

About

Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 61.2%
  • Python 29.3%
  • XML 5.1%
  • HTML 3.2%
  • C 1.1%
  • Shell 0.1%