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

appveyor shieldtravis shieldlicense shieldpypi package versionpython supported shield

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.

Calling .NET code from Python

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

Embedding Python in .NET

  • All calls to python should be insideausing (Py.GIL()) {/_ Your code here _/} block.
  • Import python modules usingdynamic mod = Py.Import("mod"),then you can call functions as normal, egmod.func(args).
  • Usemod.func(args, Py.kw("keywordargname", keywordargvalue))to apply keyword arguments.
  • All python objects should be declared asdynamic type.
  • Mathematical operations involving python and literal/managed types musthave the python object first, egnp.pi_2 works,2_np.pi doesn't.

Example

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

Stars

Watchers

Forks

Packages

No packages published

Languages

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

[8]ページ先頭

©2009-2025 Movatter.jp