Q:

How to distribute modules with python 3.4

I've seen on Python Docs that distutils is "legacy" since Python 3.4. What is now the recommended (or standard) way to distribute packages and/or modules.
Thanks

A:

Well, the documentation for the distutils module says it all:

The distutils package provides support for building and installing
  additional modules into a Python installation. The new modules may be
  either 100%-pure Python, or may be extension modules written in C, or
  may be collections of Python packages which include modules coded in
  both Python and C.
Most Python users will not want to use this module directly, but
  instead use the cross-version tools maintained by the Python Packaging
  Authority. Refer to the Python Packaging User Guide for more
  information.
For the benefits of packaging tool authors and users seeking a deeper
  understanding of the details of the current packaging and distribution
  system, the legacy distutils based user documentation and API
  reference remain available:

Installing Python Modules (Legacy version)
Distributing Python Modules (Legacy version)

In particular inside the linked user guide they state:

Use setuptools to define projects and create Source Distributions. [5] [6]
Use the bdist_wheel setuptools extension available from the wheel project to create wheels. This is especially beneficial, if your
  project contains binary extensions. [7]
Use twine for uploading distributions to PyPI.

And later on:

distribute was a fork of setuptools that was merged back into
  setuptools (in v0.7), thereby making setuptools the primary choice for
  Python packaging.

In other words:

distutils is still the standard way. Only, it's more low level than what most people want. It's the foundantion on top of which the other tools are built, so it is not "legacy". In fact there is no mention of deprecation in the docs.
setuptools is the preferred way to distribute a package.

