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

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

pythonnet/pythonnet

 
 

Repository files navigation

Join the chat at https://gitter.im/pythonnet/pythonnet

appveyor shieldtravis shieldcodecov shield

license shieldpypi package versionconda-forge versionpython supported shieldstackexchange shield

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

Calling .NET code from Python

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

import clrfrom System import Stringfrom System.Collections import *

To load an assembly, use theAddReference function in theclrmodule:

import clrclr.AddReference("System.Windows.Forms")from System.Windows.Forms import Form

Embedding Python in .NET

  • All calls to python should be inside ausing (Py.GIL()) {/* Your code here */} block.
  • Import python modules usingdynamic mod = Py.Import("mod"), thenyou can call functions as normal, egmod.func(args).
  • Usemod.func(args, Py.kw("keywordargname", keywordargvalue)) ormod.func(args, keywordargname: keywordargvalue) to apply keywordarguments.
  • All python objects should be declared asdynamic type.
  • Mathematical operations involving python and literal/managed typesmust have the python object first, eg.np.pi * 2 works,2 * np.pi doesn't.

Example

staticvoidMain(string[]args){using(Py.GIL()){dynamicnp=Py.Import("numpy");Console.WriteLine(np.cos(np.pi*2));dynamicsin=np.sin;Console.WriteLine(sin(5));doublec=np.cos(5)+sin(5);Console.WriteLine(c);dynamica=np.array(newList<float>{1,2,3});Console.WriteLine(a.dtype);dynamicb=np.array(newList<float>{6,5,4},dtype:np.int32);Console.WriteLine(b.dtype);Console.WriteLine(a*b);Console.ReadKey();}}

Output:

1.0-0.958924274663-0.6752620892float64int32[  6.  10.  12.]

Resources

Information on installation, FAQ, troubleshooting, debugging, andprojects using pythonnet can be found in the Wiki:

https://github.com/pythonnet/pythonnet/wiki

Mailing list
https://mail.python.org/mailman/listinfo/pythondotnet
Chat
https://gitter.im/pythonnet/pythonnet

.NET Foundation

This project is supported by the.NET Foundation.

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


[8]ページ先頭

©2009-2025 Movatter.jp