pythonnet 3.1.0-preview2023-09-17
See the version list below for details.
dotnet add package pythonnet --version 3.1.0-preview2023-09-17
NuGet\Install-Package pythonnet -Version 3.1.0-preview2023-09-17
<PackageReference Include="pythonnet" Version="3.1.0-preview2023-09-17" />
paket add pythonnet --version 3.1.0-preview2023-09-17
#r "nuget: pythonnet, 3.1.0-preview2023-09-17"
// Install pythonnet as a Cake Addin #addin nuget:?package=pythonnet&version=3.1.0-preview2023-09-17&prerelease // Install pythonnet as a Cake Tool #tool nuget:?package=pythonnet&version=3.1.0-preview2023-09-17&prerelease
pythonnet
is a package that gives .NET programmers ability to
integrate Python engine and use Python libraries.
Embedding Python in .NET
- You must set
Runtime.PythonDLL
property orPYTHONNET_PYDLL
environment variable, otherwise you will receiveBadPythonDllException
(internal, derived fromMissingMethodException
) upon callingInitialize
. Typical values arepython38.dll
(Windows),libpython3.8.dylib
(Mac),libpython3.8.so
(most other *nix). Full path may be required. - Then call
PythonEngine.Initialize()
. If you plan to use Python objects from multiple threads, also callPythonEngine.BeginAllowThreads()
. - 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, egmod.func(args)
. You can also access Python objects viaPyObject
and dervied types instead of usingdynamic
. - Use
mod.func(args, Py.kw("keywordargname", keywordargvalue))
ormod.func(args, keywordargname: keywordargvalue)
to apply keyword arguments. - Mathematical operations involving python and literal/managed types
must have the python object first, eg.
np.pi * 2
works,2 * np.pi
doesn't.
Example
using var _ = Py.GIL();
dynamic np = Py.Import("numpy");
Console.WriteLine(np.cos(np.pi * 2));
dynamic sin = np.sin;
Console.WriteLine(sin(5));
double c = (double)(np.cos(5) + sin(5));
Console.WriteLine(c);
dynamic a = np.array(new List<float> { 1, 2, 3 });
Console.WriteLine(a.dtype);
dynamic b = np.array(new List<float> { 6, 5, 4 }, dtype: np.int32);
Console.WriteLine(b.dtype);
Console.WriteLine(a * b);
Console.ReadKey();
Output:
1.0
-0.958924274663
-0.6752620892
float64
int32
[ 6. 10. 12.]
Resources
Information on installation, FAQ, troubleshooting, debugging, and projects 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.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.7.0)
- System.Reflection.Emit (>= 4.3.0)
NuGet packages (41)
Showing the top 5 NuGet packages that depend on pythonnet:
Package | Downloads |
---|---|
Python.Included
Python.Included is an automatic deployment mechanism for .NET packages which depend on the embedded Python distribution. This allows libraries depending on Python and/or Python packages to be deployed via Nuget without having to worry about any local Python installations. |
|
Numpy.Bare
C# bindings for NumPy on Win64 - a fundamental library for scientific computing, machine learning and AI. Does require Python 3.7 with NumPy 1.16 installed! |
|
Gradient.Runtime
Core runtime components for Gradient |
|
LostTech.NumPy
.NET bindings for NumPy. Requires the actual Python with NumPy installed. |
|
LostTech.TensorFlow
FULL TensorFlow 2.5+ for .NET with Keras. Build, train, checkpoint, execute models. Samples: https://github.com/losttech/Gradient-Samples, https://github.com/losttech/YOLOv4, https://github.com/losttech/Siren Deep learning with .NET blog: https://ml.blogs.losttech.software/ Comparison with TensorFlowSharp: https://github.com/losttech/Gradient/#why-not-tensorflowsharp Comparison with TensorFlow.NET: https://github.com/losttech/Gradient/#why-not-tensorflow-net Allows building arbitrary machine learning models, training them, and loading and executing pre-trained models using the most popular machine learning framework out there: TensorFlow. All from your favorite comfy .NET language. Supports both CPU and GPU training (the later requires CUDA or a special build of TensorFlow). Provides access to full tf.keras, estimators and many more APIs. Free for non-commercial use. For licensing options see https://losttech.software/buy_gradient.html !!NOTE!! This version requires Python 3.x x64 to be installed with TensorFlow 2.5.x. See the official installation instructions in https://www.tensorflow.org/install/ (ensure you are installing version 2.5 to avoid hard-to-debug issues). Please, report any issues to https://github.com/losttech/Gradient/issues For community support use https://stackoverflow.com/ with tags (must be all 3 together) tensorflow, gradient, and .net. For support email contact@losttech.software . More information in NuGet package release notes and on the project web page: https://github.com/losttech/Gradient . TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc. |
GitHub repositories (9)
Showing the top 5 popular GitHub repositories that depend on pythonnet:
Repository | Stars |
---|---|
elsa-workflows/elsa-core
A .NET workflows library
|
|
LykosAI/StabilityMatrix
Multi-Platform Package Manager for Stable Diffusion
|
|
Danily07/Translumo
Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc.
|
|
SciSharp/BotSharp
AI Multi-Agent Framework in .NET
|
|
SciSharp/Numpy.NET
C#/F# bindings for NumPy - a fundamental library for scientific computing, machine learning and AI
|
Version | Downloads | Last updated |
---|---|---|
3.1.0-preview2024-09-06 | 3,161 | 9/6/2024 |
3.1.0-preview2024-08-05 | 878 | 8/5/2024 |
3.1.0-preview2024-07-03 | 3,621 | 7/3/2024 |
3.1.0-preview2024-06-03 | 6,410 | 6/3/2024 |
3.1.0-preview2024-05-07 | 738 | 5/7/2024 |
3.1.0-preview2024-04-07 | 773 | 4/7/2024 |
3.1.0-preview2024-03-03 | 12,460 | 3/3/2024 |
3.1.0-preview2024-02-05 | 646 | 2/5/2024 |
3.1.0-preview2024-01-04 | 56,368 | 1/4/2024 |
3.1.0-preview2023-12-04 | 1,437 | 12/4/2023 |
3.1.0-preview2023-11-04 | 870 | 11/4/2023 |
3.1.0-preview2023-10-03 | 779 | 10/3/2023 |
3.1.0-preview2023-09-17 | 1,080 | 9/17/2023 |
3.1.0-preview2023-07-03 | 6,550 | 7/3/2023 |
3.1.0-preview2023-04-03 | 12,695 | 4/3/2023 |
3.0.4 | 34,065 | 9/19/2024 |
3.0.3 | 334,845 | 10/11/2023 |
3.0.2 | 36,505 | 8/29/2023 |
3.0.1 | 337,255 | 11/2/2022 |
3.0.0 | 33,752 | 9/29/2022 |
2.3.0-py35-dotnet | 3,765 | 3/16/2017 |
2.3.0-py27-dotnet | 1,993 | 3/16/2017 |