- Notifications
You must be signed in to change notification settings - Fork0
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
sdpython/pythonnet
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Python for .NET is a package that gives Python programmers nearlyseamless integration with the .NET Common Language Runtime (CLR) andprovides a powerful application scripting tool for .NET developers.It allows Python code to interact with the CLR, and may also be used toembed Python into a .NET application.
Python for .NET allows CLR namespaces to be treated essentiallyas Python packages.
importclrfromSystemimportStringfromSystem.Collectionsimport*
To load an assembly, use theAddReference
function in theclr
module:
importclrclr.AddReference("System.Windows.Forms")fromSystem.Windows.FormsimportForm
- All calls to python should be insidea
using (Py.GIL()) {/_ Your code here _/}
block. - Import python modules using
dynamic mod = Py.Import("mod")
,then you can call functions as normal, egmod.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 musthave the python object first, eg
np.pi_2
works,2_np.pi
doesn't.
staticvoidMain(string[]args){using(Py.GIL()){dynamicnp=Py.Import("numpy");dynamicsin=np.sin;Console.WriteLine(np.cos(np.pi*2));Console.WriteLine(sin(5));doublec=np.cos(5)+sin(5);Console.WriteLine(c);/* this block is temporarily disabled due to regression 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();}}
Output:
1.0-0.958924274663-0.6752620892float64int32[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
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Languages
- C#79.1%
- Python19.5%
- Other1.4%