Status: In Progress
Epic Name:Python 3 in edx-platform
We want to add support for running edx-platform with Python 3. Reasons include:
- Support for Python 2.7 ends on January 1, 2020
- Django 2.0 and higher no longer support Python 2.7
- Many useful standard library features like asyncio and tracemalloc are only available in Python 3
- Many useful new packages like API Star, Django Channels, and Dramatiq only work with Python 3
The tickets in this epic help move us towards this goal without requiring any significant prior knowledge of the Open edX source code or needing any other work to be completed first. See OEP-7 for details on the current overall plan for updating edx-platform to support Python 3; that document can serve as inspiration for tickets to create in this epic.
Questions and discussion about the Python 3 porting effort outside the scope of existing tickets in this epic should be directed to the #python-3 channel in the Open edX Slack team.
Running edx-platform tests in Python 3 via tox is currently blocked by the need to replace the MySQL-python package with mysqlclient, which is being done outside the INCR project due to the high likelihood of hitting unexpected problems.