In August, the UK's National Cyber Security Centre (NCSC) warned that organisations should move code away from Python 2 because it will no longer receive security fixes from January 1, 2020.
“If you continue to use unsupported operating systems, you are putting the security of organization and your data at risk, as vulnerabilities that no one fixes will appear sooner or later,” he said.
This problem is exacerbated by developers who created dependencies or software libraries with Python 2, which in turn prevent developers from upgrading to Python 3.

It was a slow road for developers to successfully port their codebases to Python 3, which had been launched in 2008. Six years before Python 2 reached the end of its life, Python creator Guido van Rossum, who recently passed away, declared in 2014 that “it is time to move on to Python 3.”.
There's even a countdown clock to remind people how many minutes of support are left for Python 2.7. Right now it's just one month, 16 days, plus a few hours.
Vicki Boykis, an American scientist, discussed the reasons why it takes so long for programmers to port their Python 2 code to Python 3.
“Many people didn’t port their code because they found it mostly a hassle,” Boykis writes. “At the time, the biggest difference was the change in syntax , which broke a lot of code. As a result, Python 2 continued to be in active development.”
Another major obstacle to moving to Python 3 is that it is not compatible with Python 2. “As a result, large libraries were hesitant to move to the platform and it was difficult to port to code with a lack of helper tools,” he notes.
Fortunately, over the years Python 3 has gained substantial feature improvements that have helped it become the default for new development. But this is not necessarily true for existing projects.
However, while dependencies can be a motivator for moving to Python 3, progress has been made. After a survey of Python developers, JetBrains predicted that all developers would move to Python 3 before Python 2's end of life .
