Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jul 22, 2023. It is now read-only.
/pythonnetPublic archive
forked frompythonnet/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.

License

NotificationsYou must be signed in to change notification settings

sdpython/pythonnet

Repository files navigation

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. It allows Python code to interact with the CLR, and may also be used to embed Python into a .NET application.

Build Status

Build status

Calling .NET code from Python

Python for .NET allows CLR namespaces to be treated essentially as Python packages.

importclrfromSystemimportStringfromSystem.Collectionsimport*

To load an assembly, use the "AddReference" function in the "clr" module:

importclrclr.AddReference("System.Windows.Forms")fromSystem.Windows.FormsimportForm

Embedding Python in .NET

  • 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:

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();}}

outputs:

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

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C#79.1%
  • Python19.5%
  • Other1.4%

[8]ページ先頭

©2009-2025 Movatter.jp