Python 2 to 3 Migration – Now or Never?

py2 to 3
Are you still dependent on Python 2 for your applications? Then you must know that meeting security and compliance standards is a long and complicated process. ActiveState can help you secure your legacy applications, achieve compliance and even migrate to Python 3! Learn more about ActiveState’s extended Python 2 support.
The upcoming end-of-support deadline for Python 2 on January 1, 2020 means enterprises need to start thinking about the impact it will have on their existing Python applications.

Originally, Python 2 was used as a scripting alternative to Perl for things like configuration automation or else for creating web applications. But Python adoption didn’t really take off until its data science packages started becoming popular some 5-6 years ago.

Python 2 vs 3

Despite the fact that Python 3 was originally introduced in 2008, and was well established by the time data science projects started accelerating the popularity of Python, data scientists by and large were still working with Python 2.

In fact, Python 2 is proving to be a particularly difficult habit to kick:

  • Many popular operating systems (like Mac OS) continue to incorporate Python 2 as the default installation, or provide both Python 2 and 3 out of the box (Debian, SUSE, etc)
  • As recently as August 2016, 90% of all pip installs were for Python 2
  • It wasn’t until June 2017 that Python 3 users started outnumbering Python 2 users, according to PyCharm

The good news is that Python 3 is (finally) starting to gain ground:

  • 94% of the top 360 most downloaded packages offer Python 3 support
  • The three largest public cloud providers (AWS, Azure and Google Cloud Platform) fully support Python 3
  • Python 3.5 introduced changes that simplified code porting

As a result, if you’re creating new projects today, you should be using Python 3 unless there’s a specific package you need that still doesn’t support 3.

Want more information on Python 2 to 3 migration? Evaluate different options and get the how-to here.

Download How-to

To Migrate or Not to Migrate

The real question is whether or not you should be migrating your existing Python 2 code to Python 3. The answer depends on your use case:

Use Case Migrate Why / Why not?
Internal Deployments No

If it’s not broken, don’t fix it.

Scripts and applications deployed in the secure zone behind the firewall should be fine.

Data Science Deployments YES

The message is clear: organizations focused on data science should be planning on adopting Python 3.

All of the data science package creators have announced their plans to adopt Python 3.

And the data science packages are moving very quickly: new features, new functionality, and new versions are coming out all the time.

Public-facing Applications/Packages YES

Enterprises in this boat will need to have a strategy since their deployments will become more and more vulnerable over time.

Your planning should encompass at least two options: 1) spend the time and resources to perform the migration, or else 2) opt for extended support.

Tips for Migration / Support

For those considering code migration, a number of Python packages exist to help you out:

  • Six – best for adding Python 3 compatibility to your existing Python 2 code
  • 2to3 – best for converting Python 2 code to Python 3 code
  • Python-future – best for those that want to focus on writing python 3 code going forward while ensuring backward compatibility with Python 2

For those that are considering staying on Python 2 (at least for now), commercial vendors are likely to step up and provide extended support. ActiveState is one of those vendors—we’re providing custom support for Python 2 applications past the EOL date of January 1, 2020, including bug fixes and patches for core libraries and third-party packages.

ActiveState, like Python 2, has been around for more than 20 years. We’re a founding member of, and have had millions of developers download our Python distributions for the past two decades.

Don’t risk the security of your Python 2 applications—request a risk assessment today and we’ll work with you to create a custom support plan.

Request Assessment

Recent Posts

Scroll to Top