Skip to the content.


Python.NET (pythonnet) is a package that gives Python programmers nearly seamless integration with .NET Framework, .NET Core and Mono runtime on Windows, Linux and macOS. Python.NET provides a powerful application scripting tool for .NET developers. Using this package you can script .NET applications or build entire applications in Python, using .NET services and components written in any language that targets the CLR (C#, VB.NET, F#, C++/CLI).

Note that this package does not implement Python as a first-class CLR language - it does not produce managed code (IL) from Python code. Rather, it is an integration of the CPython engine with a .NET runtime. This approach allows one to use CLR services and continue to use existing Python code and C-API extensions while maintaining native execution speeds for Python code. If you are interested in a pure managed-code implementation of the Python language, you should check out the IronPython project, which is in active development.

Python.NET is currently compatible and tested with Python releases 3.7 - 3.11.

To subscribe to the Python.NET mailing list or read the online archives of the list, see the mailing list information page. Use the Python.NET issue tracker to report issues.


Python.NET is available as a source release on GitHub and as a single binary wheel distribution for all supported versions of Python and from the Python Package Index. A Nuget package is provided to embed Python into .NET.


Documentation for Python.NET is available here:

Documentation for the lower-level clr-loader library is available here: Documentation for clr-loader


Python.NET is released under the open source MIT License. A copy of the license is included in the distribution, or you can find a copy of the license online.

.NET Foundation

This project is supported by the .NET Foundation.