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/pythonnetstackexchange shield

gh shield

license shield

pypi package versionconda-forge versionpython supported shield

nuget preview shieldnuget release 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.

importclrfromSystemimportStringfromSystem.Collectionsimport*

To load an assembly, use theAddReference function in theclrmodule:

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

By default, Mono will be used on Linux and macOS, .NET Framework on Windows. Fordetails on the loading of different runtimes, please refer to the documentation.

.NET Core

If .NET Core is installed in a default location or thedotnet CLI tool is onthePATH, loading it instead of the default (Mono/.NET Framework) runtimejust requires setting either the environment variablePYTHONNET_RUNTIME=coreclr or callingpythonnet.load explicitly:

frompythonnetimportloadload("coreclr")importclr

Embedding Python in .NET

  • You must setRuntime.PythonDLL property orPYTHONNET_PYDLL environment variablestarting with version 3.0, otherwise you will receiveBadPythonDllException(internal, derived fromMissingMethodException) upon callingInitialize.Typical values arepython38.dll (Windows),libpython3.8.dylib (Mac),libpython3.8.so (most other Unix-like operating systems).
  • Then callPythonEngine.Initialize(). If you plan to use Python objects frommultiple threads, also callPythonEngine.BeginAllowThreads().
  • 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){PythonEngine.Initialize();using(Py.GIL()){dynamicnp=Py.Import("numpy");Console.WriteLine(np.cos(np.pi*2));dynamicsin=np.sin;Console.WriteLine(sin(5));doublec=(double)(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