# Python 3 module

This module provides support for dealing with Python 3. It has the following methods.

## find_python

This is a cross platform way of finding the Python 3 executable, which may have a different name on different operating systems. Returns an external program object.

*Added 0.38.0*

## extension_module

Creates a `shared_module` target that is named according to the naming conventions of the target platform. All positional and keyword arguments are the same as for [shared_module](Reference-manual.md#shared_module).

*Added 0.38.0*

## language_version

Returns a string with the Python language version such as `3.5`.

*Added 0.40.0*

## sysconfig_path

Returns the Python sysconfig path without prefix, such as `lib/python3.6/site-packages`.

*Added 0.40.0*
