pythonnet 3.2.1

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 or PYTHONNET_PYDLL environment variable, otherwise you will receive BadPythonDllException (internal, derived from MissingMethodException) upon calling Initialize. Typical values are python38.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 call PythonEngine.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, eg mod.func(args). You can also access Python objects via PyObject and dervied types instead of using dynamic.
  • Use mod.func(args, Py.kw("keywordargname", keywordargvalue)) or mod.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.

No packages depend on pythonnet.

.NET Standard 2.0

Version Downloads Last updated
3.2.1 4 10/11/2026
3.2.0 7 10/02/2026
3.1.0 22 05/26/2026
3.1.0-rc.1 21 05/19/2026
3.1.0-rc.0 33 02/27/2026
3.1.0-preview2024-09-06 38 12/19/2025
3.1.0-preview2024-08-05 28 12/20/2025
3.1.0-preview2024-07-03 27 12/20/2025
3.1.0-preview2024-06-03 29 12/20/2025
3.1.0-preview2024-05-07 37 12/20/2025
3.1.0-preview2024-04-07 27 12/19/2025
3.1.0-preview2024-03-03 40 12/20/2025
3.1.0-preview2024-02-05 30 12/20/2025
3.1.0-preview2024-01-04 38 12/18/2025
3.1.0-preview2023-12-04 21 12/20/2025
3.1.0-preview2023-11-04 25 12/20/2025
3.1.0-preview2023-10-03 25 12/17/2025
3.1.0-preview2023-09-17 27 12/20/2025
3.1.0-preview2023-07-03 30 12/19/2025
3.1.0-preview2023-04-03 36 12/19/2025
3.0.5 32 12/20/2025
3.0.4 38 12/20/2025
3.0.3 36 12/17/2025
3.0.2 31 12/20/2025
3.0.1 31 12/20/2025
3.0.0 29 12/20/2025
2.3.0-py35-dotnet 33 12/20/2025
2.3.0-py27-dotnet 31 12/17/2025