Python 3.5

    89 - Comments

Python 3.5 by Software Collections rh-python35 - A release of Python 3.5 with a number of additional utilities. This Software Collection gives developers on CentOS and RHEL access to Python 3.5 and allows them to benefit from various advantages and new features of this version. Install Microsoft.NET Framework 3.5 SP1 if not present. Install Microsoft Windows SDK for Windows Server 2008 and.NET Framework 3.5. Check Windows headers and libraries, Visual C Compilers and Win32 Development Tools options only. The setuptools Python package version must be at least 24.0.

Dropping support for older Python versions is supported by the standard Core metadata specifications 1.2 specification via a “Requires-Python” attribute.

Metadata 1.2+ clients, such as Pip 9.0+, will adhere to this specification by matching the current Python runtime and comparing it with the required versionin the package metadata. If they do not match, it will attempt to install the last package distribution that supported that Python runtime.

This mechanism can be used to drop support for older Python versions, by amending the “Requires-Python” attribute in the package metadata.

This guide is specifically for users of setuptools, other packaging tools such as flit may offer similar functionality but users will need to consult relevant documentation.


This workflow requires that:

  1. The publisher is using the latest version of setuptools,

  2. The latest version of twine is used to upload the package,

  3. The user installing the package has at least Pip 9.0, or a client that supports the Metadata 1.2 specification.

Dealing with the universal wheels¶

Traditionally, projects providing Python code that is semanticallycompatible with both Python 2 and Python 3, produce wheels that have a py2.py3 tag in their names. When droppingsupport for Python 2, it is important not to forget to change this tagto just py3. It is often configured within setup.cfg underthe [bdist_wheel] section by setting universal=1if theyuse setuptools.

If you use this method, either remove this option or section, orexplicitly set universal to 0:


Since it is possible to override the setup.cfg settings viaCLI flags, make sure that your scripts don’t have --universal inyour package creation scripts.

Defining the Python version required¶

1. Download the newest version of Setuptools¶

Ensure that before you generate source distributions or binary distributions, you update Setuptools and install twine.


setuptools version should be above 24.0.0.

Python 3.5

2. Specify the version ranges for supported Python distributions¶

You can specify version ranges and exclusion rules, such as at least Python 3. Or, Python 2.7, 3.4 and beyond.


The way to set those values is within the call to setup within yoursetup.py script. This will insert the Requires-Pythonmetadata values based on the argument you provide in python_requires.

3. Validating the Metadata before publishing¶

Within a Python source package (the zip or the tar-gz file you download) is a text file called PKG-INFO.

This file is generated by Distutils or setuptools when it generates the source package.The file contains a set of keys and values, the list of keys is part of the PyPa standard metadata format.

You can see the contents of the generated file like this:

Validate that the following is in place, before publishing the package:

  • If you have upgraded correctly, the Metadata-Version value should be 1.2 or higher.

  • The Requires-Python field is set and matches your specification in setup.py.

4. Using Twine to publish¶

Twine has a number of advantages, apart from being faster it is now the supported method for publishing packages.

Make sure you are using the newest version of Twine, at least 1.9.

Dropping a Python release¶

Once you have published a package with the Requires-Python metadata, you can then make a further update removing that Python runtime from support.

It must be done in this order for the automated fallback to work.

For example, you published the Requires-Python: “>=2.7” as version 1.0.0 of your package.

If you were then to update the version string to “>=3.5”, and publish a new version 2.0.0 of your package, any users running Pip 9.0+ from version 2.7 willhave version 1.0.0 of the package installed, and any >=3.5 users will receive version 2.0.0.

rh-python35 - A release of Python 3.5 with a number of additional utilities. This Software Collection gives developers on CentOS and RHEL access to Python 3.5 and allows them to benefit from various advantages and new features of this version. The rh-python35 Software Collection contains Python 3.5 interpreter, a set of extension libraries useful for programming web applications and mod_wsgi (only supported with the httpd24 Software Collection), PostgreSQL database connector, and numpy and scipy.

EL6 tests EL7 tests

Report a bug in the issue tracker


Install python 3.5

You can get started in three easy steps:

At this point you should be able to use python just as a normal application. Some examples of new available commands follow:

In order to view the individual components included in this collection, including additional python modules, you can run:

Python 3.5 Install

Python Software Collection as Docker Formatted Container

On CentOS 7 and RHEL 7 you can pull the image with the following command:

For more on the docker image follow this link to public source repository.

Python 3.5 Release Date


Community Project: Maintained by upstream communities of developers. The software is cared for, but the developers make no commitments to update the repositories in a timely manner.

Yum Repositories

Operating systemPackage with repoBrowse files
CentOS 6

yum install centos-release-scl-rh

CentOS 7

yum install centos-release-scl-rh


yum-config-manager --enable rhel-server-rhscl-6-rpms


yum-config-manager --enable rhel-server-rhscl-7-rpms



Python 3.5 Windows

Report malicious content

Recent Pages