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.

License

Notifications You must be signed in to change notification settings

pythonnet/pythonnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

pythonnet

This fork of http://sourceforge.net/projects/pythonnet/ allows easy calling of python functions from C#.

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, 2*np.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)); Console.WriteLine(np.cos(5) + sin(5)); dynamic a = np.array(new List { 1, 2, 3 }; dynamic b = np.array(new List { 6, 5, 4 }, Py.kw("dtype", np.int32)); Console.WriteLine(a.dtype); Console.WriteLine(b.dtype); Console.WriteLine(a * b); Console.ReadKey(); } }

which 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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages