Compatibility and requirements for the Python agent

Before you install the Python agent, make sure your system meets these requirements.

Basic requirements

The Python agent supports many of the most common Python web frameworks. Additional configuration may be required depending on your specific hosting mechanism, hosting service, web framework, or back-end services.

Resource Requirements
Operating systems UNIX-like operating systems including Linux, Solaris, FreeBSD, and macOS. The Python agent does not support Windows environments.

Python (CPython/PyPy) versions supported: Versions 2.7, 3.5, 3.6, 3.7, 3.8

Python versions 2.6 and 3.3 supported only by Python agent versions or lower. Python version 3.4 supported only by Python agent versions or lower.

Supported web frameworks

Supported web frameworks include:

  • Aiohttp
  • Bottle
  • CherryPy
  • Django
  • Falcon
  • FastAPI
  • Flask
  • gRPC
  • Pylons
  • Pyramid
  • Sanic
  • Starlette
  • Tornado 6
  • Web2Py
Unsupported frameworks

Some WSGI servers, frameworks, and apps have special requirements. Although a specific Python WSGI web framework may not be supported, you can still use the agent. For unsupported frameworks, a breakout of time spent in key parts of the framework will not appear in web transaction performance breakdowns and transaction traces.

In addition, the agent will not be able to meaningfully group any web transactions handled by specific handlers in your code that you use to make them more useful and targeted. In these situations you can use the Python agent API to name web transactions or add custom instrumentation.

Hosting Web hosting mechanisms compliant with WSGI 1.0 (PEP 333). For example, you can install the Python agent in a Google App Engine flexible environment.
Security requirements As a standard security measure for data collection, your app server must support SHA-2 (256-bit). SHA-1 is not supported.
Other monitoring software

If your application uses other monitoring software besides ours, we cannot guarantee that our agent will work correctly and we cannot offer technical support. For more information, see Errors while using other monitoring software.

Python package instrumentation

The agent also provides instrumentation for a range of other Python packages and modules. Instrumentation includes database queries, memcache requests, external service requests, instance-level details, and more. The results will appear automatically in APM's user interface within web transaction performance breakdowns and transaction traces for slow transactions.

Python version support

The agent in general will support all released and active Python branches. However, to keep up with upcoming changes, the agent will also follow this Python version support schedule. The version support policy does not replace the general New Relic agent and plugin end-of-life (EOL) policy.

Support for new Python releases

The following are proposed time ranges. The actual release date may vary.

Python version Active long term support (LTS) start date Initial release date of Python agent
with support
3.8 October 21, 2019 November-December 2019

End of support for Python releases reaching EOL

The following are proposed time ranges. The actual release date may vary.

Python version End of life (EOL) date Initial release date of Python agent dropping support
3.5 September 13, 2020 TBD
2.7 January 1, 2020 TBD

Connect the agent to other Full-Stack Observability capabilities

The Python agent integrates with other capabilities to give you end-to-end visibility:

Product Integration
Browser Monitoring The Python agent automatically injects the browser JavaScript agent when you enable auto-instrumentation. After enabling browser injection, you can view browser data in the APM Summary page and quickly switch between the APM and browser data for a particular app. For configuration options and manual instrumentation, see Browser monitoring and the Python agent.
Infrastructure monitoring When you install the Infrastructure monitoring and APM agents on the same host, they automatically detect one another. You can then view a list of hosts in the APM UI, and filter your Infrastructure hosts by APM app in the Infrastructure monitoring UI. For more information, see APM data in Infrastructure.
Synthetic monitoring Synthetic transaction traces connect requests from synthetic monitors to the underlying APM transaction.

For more help

If you need more help, check out these support and learning resources: