Python development company: 6 checks before the 31 October 2026 cutoff

Python 3.10 support ends in October 2026. Judge a Python development company on how it plans that migration, not on its framework list.

Read time
12 min
Word count
1.9K
Sections
10
FAQs
8
Share
Python 3.10 end-of-life and AWS Lambda runtime deadlines for 2026 and 2027
Python 3.10 reaches end of life in October 2026; the AWS Lambda python3.10 runtime deprecates 31 October 2026.
On this page · 10 sections
  1. Check 1: do they know which Python versions are actually supported?
  2. Check 2: have they mapped your cloud runtime deadlines?
  3. Check 3: can they explain what free-threaded Python costs you?
  4. Check 4: does your framework floor match your runtime ceiling?
  5. Check 5: how do they handle the migration itself?
  6. Check 6: security posture and compliance
  7. What we build, and how
  8. FAQ
  9. How eCorpIT can help
  10. References

Summary. Python 3.10 reaches end of life in October 2026, which is roughly 10 weeks away, and it is already in security-only status with no new binaries. The AWS Lambda python3.10 runtime carries a deprecation date of 31 October 2026, after which Lambda blocks new function creation from 1 February 2027 and blocks updates to existing functions from 3 March 2027. Amazon Linux 2, which both the python3.10 and python3.11 Lambda runtimes are built on, reached end of life on 30 June 2026. Django 6.0, released 3 December 2025, supports only Python 3.12, 3.13 and 3.14. Python 3.15.0 is scheduled for 1 October 2026 and its Lambda runtime is targeted for November 2026. Meanwhile free-threaded Python became officially supported in 3.14 under PEP 779, at a cost of roughly 10% single-threaded performance and 15-20% higher memory use. A Lambda function invoked a million times costs $0.20 in request charges, so none of this is about compute spend. It is about whether your code can still be deployed in March 2027.

Most guides to hiring a Python development company compare framework familiarity. That is table stakes. The six checks below are about migration competence, which is what actually determines whether your team spends the next two quarters shipping features or chasing runtime deadlines.

Check 1: do they know which Python versions are actually supported?

The Python Software Foundation publishes version status on the Python Developer's Guide, and the picture surprises most teams. Only two versions still receive binary bugfix releases.

Python version Status (August 2026) End of life
3.15 Prerelease, final due 1 October 2026 Approx. October 2031
3.14 Bugfix, first released 7 October 2025 Approx. October 2030
3.13 Bugfix, first released 7 October 2024 Approx. October 2029
3.12 Security only, first released 2 October 2023 Approx. October 2028
3.11 Security only, first released 24 October 2022 Approx. October 2027
3.10 Security only, first released 4 October 2021 Approx. October 2026
3.9 End of life 31 October 2025

The status column matters more than the end-of-life column. Under the phases defined in PEP 602, a version in security status accepts only security fixes, and, in the developer guide's own words, "no more binaries are released. New source-only versions can be released as needed." Python 3.12 has already crossed that line. If your team believes 3.12 is a safe long-term target because its end of life is 2028, they are planning around a version that no longer ships binaries.

A partner should be able to tell you, without looking it up, that 3.13 and 3.14 are the only versions in bugfix status today.

Check 2: have they mapped your cloud runtime deadlines?

Language end of life is the upstream event. The deadline that actually stops your deployment is your cloud provider's. AWS publishes both, and the Lambda runtimes table is unambiguous.

Lambda runtime Deprecation date Block function create Block function update
python3.10 31 October 2026 1 February 2027 3 March 2027
python3.11 30 June 2027 31 July 2027 31 August 2027
python3.12 31 October 2028 30 November 2028 10 January 2029
python3.13 30 June 2029 31 July 2029 31 August 2029
python3.14 30 June 2029 31 July 2029 31 August 2029
python3.9 15 December 2025 (deprecated) 1 February 2027 3 March 2027

Three details in that table are easy to miss and expensive to discover late.

First, python3.10 and python3.11 both run on Amazon Linux 2, which AWS states was scheduled for end of life on 30 June 2026. AWS confirms those runtimes continue receiving patches for critical and selected important Amazon Linux 2 security issues until their listed deprecation dates, but the underlying OS is already out of support. AWS recommends upgrading to an Amazon Linux 2023-based runtime as soon as possible.

Second, deprecation does not stop your functions running. AWS is explicit that you can continue to invoke functions indefinitely, but security patches stop, technical support ends, and the runtime is provided as-is. The hard wall is 3 March 2027, when Lambda blocks updates to python3.10 function code and configuration. After that you can still upgrade to a supported runtime, but rolling back may be blocked.

Third, the gap between deprecation and blocking is unusually generous here. AWS's standard policy is 30 days to block creates and 60 days to block updates, but python3.10 gets 93 and 123 days respectively, which AWS attributes to customer feedback. Do not read that as slack. It is 2026 breathing room that disappears in 2027.

Python 3.15 is in public preview on Lambda now, and AWS states preview runtimes are not covered by the Lambda SLA or technical support and should not be used for production workloads. The general availability target is November 2026, a month after the 1 October 2026 language release, because Lambda only ships managed runtimes once a release reaches long-term support.

Check 3: can they explain what free-threaded Python costs you?

Free-threaded Python is the single largest change to the runtime in a decade, and it is now officially supported rather than experimental. PEP 779, authored by Thomas Wouters, Matt Page and Sam Gross, reached Final status with a Steering Council resolution on 16 June 2025 and moved the free-threaded build to Phase II in Python 3.14.

Officially supported is not the same as default. The PEP is direct about the trade-off, measured with the pyperformance benchmark suite:

Dimension Free-threaded build vs with-GIL Phase II target
Single-threaded CPU performance About 10% slower, about 3% on macOS 15% hard target
Memory use 15-20% higher, geometric mean 20% target
API stability 3.13 APIs unchanged through 3.14 Proven, stable APIs
Default build No, still optional Phase III, future PEP

Thomas Wouters, CPython release manager for Python 3.12 and 3.13 and a co-author of PEP 779, sets the expectation plainly: free-threaded Python is not a drop-in solution, and "some code will have to be redesigned to make the most of the new capability, as well as avoid performance pitfalls."

The commercial translation is straightforward. If your workload is a request-per-thread web service that already scales horizontally, adopting the free-threaded build today buys you a 10% single-threaded penalty and 15-20% more memory for no gain. If you run CPU-bound in-process parallelism that currently fights the GIL, it can be transformative. A partner who recommends free-threaded Python without asking which of those you are is guessing. We covered the upgrade mechanics in our note on the Python 3.15 upgrade, free-threaded ABI, lazy imports and JIT.

Check 4: does your framework floor match your runtime ceiling?

This is where migrations stall. Django 6.0 was released on 3 December 2025 and supports Python 3.12, 3.13 and 3.14. It does not support 3.10 or 3.11.

That produces a specific trap for teams on AWS. If you are running Django on python3.11, your Lambda runtime is supported until 30 June 2027, but your framework upgrade path is already blocked: you cannot move to Django 6.0 without first moving Python. Teams routinely plan the framework upgrade and the runtime upgrade as separate projects in separate quarters, then discover they are one project.

Django 6.0 also brings changes worth scoping properly rather than absorbing accidentally, including template partials for named template fragments, a built-in background tasks framework for work outside the request-response cycle, Content Security Policy configuration, and a modernised email API built on Python's EmailMessage.

Ask a prospective partner to draw your dependency floor: the highest Python version your libraries permit, and the lowest your framework requires. If those two numbers do not overlap, that gap is the project.

Check 5: how do they handle the migration itself?

A credible Python migration is not a version bump in a Dockerfile. The sequence we use is:

  1. Inventory. Every service, Lambda function, container base image, CI runner and scheduled job, with its current Python version and runtime identifier. AWS's Trusted Advisor deprecated-runtimes check and the Health Dashboard list affected functions, and AWS sends email notifications at least 180 days before a runtime is deprecated to the account's primary contact.
  1. Dependency audit. Which pinned libraries have wheels for the target version, and which are unmaintained. This is where the calendar is really set.
  1. Staged upgrade. Move to the highest version your dependencies allow, run the test suite under the new interpreter, then move the runtime.
  1. Runtime cutover. Use Lambda function versions and aliases so you can deploy safely with rollback, which AWS recommends explicitly because reverting after updates are blocked is not possible.
  1. Verification. Load-test the changed paths rather than assuming parity.

The step teams skip is the second one, and it is the only one that reliably surfaces the six-month problems.

Check 6: security posture and compliance

Python 3.9 stopped receiving security fixes on 31 October 2025. Anything still running it has been unpatched for nine months. The Lambda python3.9 runtime was deprecated on 15 December 2025, and although AWS will not block updates to those functions until 3 March 2027, they receive no security patches in the interim.

The Python Software Foundation runs a Python Security Response Team and publishes a software bill of materials for CPython releases, which is the artefact your compliance team will ask for. A partner should be producing an equivalent SBOM for your application dependencies, not just the interpreter.

India-specific considerations

For Indian businesses, the Digital Personal Data Protection Act 2023 applies to the personal data your Python services process, and the practical questions are where data is stored, how consent is recorded and how deletion requests propagate through queues, caches and analytics pipelines. Django's background tasks framework, new in 6.0, makes it easier to move that work off the request path, but it also creates another place where personal data comes to rest. Map it at design time. eCorpIT designs applications aligned with DPDP requirements and holds ISO 27001:2022 certification for its own information security management.

Cost discipline matters differently in rupee-denominated budgets. AWS Lambda charges $0.20 per 1 million requests in US East (Ohio) as published on the AWS Lambda pricing page, with a monthly free tier of 1 million requests and 400,000 GB-seconds. At that unit price the migration decision is never about invocation cost. It is about the engineering time that a blocked deployment in March 2027 would consume.

What we build, and how

eCorpIT builds and maintains Python systems for teams that treat the interpreter version as production infrastructure. The work covers Django and FastAPI web services, data and ETL pipelines, AWS Lambda and container workloads, and the migrations that keep them deployable.

Our delivery sequence is the five steps in Check 5, run as a fixed-scope audit and migration plan first, then either a fixed-scope migration or a retained senior engineering team for continuous work. We quote the migration after the dependency audit, not before, because the pinned-library inventory is what determines the effort and it cannot be estimated from outside.

eCorpIT is a Gurugram-based technology company founded in 2021, assessed at CMMI Level 5, MSME certified and ISO 27001:2022 certified, working with AWS, Microsoft and Google as technology partners. Teams are senior-led and multi-disciplinary. Related work is described on our pages for custom software development, SaaS development and software development in India.

FAQ

How eCorpIT can help

We inventory every Python service, Lambda function and container image you run, produce a dependency audit that shows which pinned libraries block your target version, and give you a costed migration plan with dates mapped against the AWS deprecation calendar. For teams already committed, we run the migration itself, including framework upgrades and the load testing that confirms parity. eCorpIT is CMMI Level 5 assessed and ISO 27001:2022 certified, and designs applications aligned with DPDP requirements. Tell us what you are running at /contact-us/ and we will start with the inventory.

References

  1. Status of Python versions — Python Developer's Guide, last updated 27 May 2026.
  1. PEP 790: Python 3.15 release schedule — Hugo van Kemenade, last modified 5 August 2026.
  1. PEP 779: Criteria for supported status for free-threaded Python — Thomas Wouters, Matt Page and Sam Gross, resolution 16 June 2025.
  1. PEP 703: Making the Global Interpreter Lock optional in CPython — Python Enhancement Proposals.
  1. PEP 602: Annual release cycle for Python — Python Enhancement Proposals.
  1. Lambda runtimes — AWS Lambda Developer Guide, August 2026.
  1. Retrieve data about Lambda functions that use a deprecated runtime — AWS Lambda Developer Guide.
  1. Understanding how Lambda manages runtime version updates — AWS Lambda Developer Guide.
  1. AWS Lambda pricing — Amazon Web Services, August 2026.
  1. Django 6.0 release notes — Django Software Foundation, 3 December 2025.
  1. Django 6.0 released — Django Weblog, 3 December 2025.
  1. PEP 619: Python 3.10 release schedule — Python Enhancement Proposals.
  1. Software bill-of-materials — Python Developer's Guide.
  1. Python Security Response Team — Python Developer's Guide.

Last updated: 16 August 2026.

Frequently asked

Quick answers.

01 When does Python 3.10 reach end of life?
Python 3.10 reaches end of life in October 2026, five years after its first release on 4 October 2021. It is already in security-only status, which means it accepts security fixes but no new binaries are built. Only source-only releases are published as needed.
02 When does the AWS Lambda python3.10 runtime stop working?
The python3.10 runtime carries a deprecation date of 31 October 2026. AWS blocks creation of new functions using it from 1 February 2027 and blocks updates to existing function code and configuration from 3 March 2027. Existing functions can still be invoked after those dates.
03 Which Python versions does Django 6.0 support?
Django 6.0, released on 3 December 2025, supports Python 3.12, 3.13 and 3.14. It does not support Python 3.10 or 3.11, so teams on those versions must upgrade the interpreter before they can upgrade the framework. The two upgrades are one project, not two.
04 Is free-threaded Python ready for production?
It is officially supported as of Python 3.14 under PEP 779, but still optional rather than the default build. It costs roughly 10% single-threaded performance and 15-20% more memory. It benefits CPU-bound in-process parallelism and offers little to services that already scale horizontally.
05 Which Python versions still get binary releases?
Only 3.13 and 3.14 are in bugfix status, which is the phase where new binaries are built and released roughly every two months. Python 3.12, 3.11 and 3.10 are all in security-only status. Python 3.15 is in prerelease until its scheduled final release date.
06 When is Python 3.15 released?
Python 3.15.0 final is scheduled for Thursday, 1 October 2026, per PEP 790, with release candidate 1 having shipped on 4 August 2026 and candidate 2 expected 1 September. AWS targets November 2026 for the Lambda managed runtime, which is currently in public preview.
07 Why does Amazon Linux 2 matter for Python on Lambda?
The python3.10 and python3.11 Lambda runtimes are built on Amazon Linux 2, which AWS scheduled for end of life on 30 June 2026. Those runtimes keep receiving patches for critical and selected important Amazon Linux 2 issues until their own deprecation dates, but AWS recommends moving to Amazon Linux 2023.
08 How much notice does AWS give before a runtime deprecation?
AWS sends email notifications at least 180 days before a runtime is deprecated, to the account's primary contact, listing the latest versions of affected functions. The same warning appears in the Health Dashboard and in the Trusted Advisor deprecated-runtimes check, which also lists published function versions.

About the author

Manu Shukla

Founder & Director

Founder of eCorpIT. Hands-on engineer leading senior-only delivery for AI apps, custom software, and cloud systems for global clients.

Subscribe

One engineering note a week. No fluff, no spam.

Senior-architect playbooks on AI agents, mobile apps, cloud, security, data, and marketing — delivered every Wednesday.

Past the reading

Read enough. Let's build something.

A senior architect responds in 24 working hours with scope, indicative cost, and a timeline. NDA before any technical conversation.