---
{"title": "Bottleneck vs Pythran in 2026: Pricing, Setup, Features", "description": "Bottleneck and Pythran compared with PyOverdrive on purpose, pricing, setup, daily use and questions to ask.", "url": "https://saydeploy.com/bottleneck-vs-pythran/", "date": "2026-10-11"}
---
Bottleneck and Pythran compared with PyOverdrive on purpose, pricing, setup, daily use and questions to ask.

Bottleneck's own page calls it a set of fast array functions for NumPy, written in C [^1]. Pythran is an ahead of time compiler for a subset of Python with a focus on scientific computing [^2]. PyOverdrive patches supported NumPy functions so existing code uses faster paths, while unsupported calls run on stock NumPy [^3]. Bottleneck's sources describe accelerated int32, int64, float32 and float64 arrays [^1]. Pythran's sources describe use of multi-cores and SIMD instruction units [^2]. PyOverdrive's sources describe self checks, calibration and controls for its fast paths [^3] [^3] [^3].

| Option | License | Price | Setup |
|---|---|---|---|
| Bottleneck | Simplified BSD license [^1] | not published | Binary wheels on PyPI for the most common platforms [^1]; source install requires Python >3.9 and NumPy 1.16.0+ [^1] |
| Pythran | BSD-3-Clause license [^2] | not published | Supports Python 3.7 and upward [^2] |
| PyOverdrive | Open source under the MIT License [^3] | not published | Install with pip straight from the GitHub repository [^3]; needs Python 3.12 or newer [^3] |

## The short answer

Bottleneck is a collection of fast NumPy array functions written in C [^1]. Pythran is an ahead of time compiler for a subset of the Python language, with a focus on scientific computing [^2]. PyOverdrive lets existing code use faster paths after calling pyoverdrive.enable(), while calls it does not support run on stock NumPy [^3].

Bottleneck's sources say only int32, int64, float32 and float64 arrays are accelerated [^1]. Pythran's sources say it supports Python 3.7 and upward [^2]. PyOverdrive's sources describe Python 3.12 or newer [^3], an OS independent package and a test suite run on Windows and Linux x86-64 [^3].

## What Bottleneck, Pythran is built for

Bottleneck's own page describes it as a collection of fast NumPy array functions written in C [^1]. Its page says only arrays with data type int32, int64, float32 and float64 are accelerated [^1]. It also says other dtypes use slower unaccelerated functions [^1]. Bottleneck is distributed under a Simplified BSD license [^1].

Pythran's own page describes it as an ahead of time compiler for a subset of the Python language, with a focus on scientific computing [^2]. Its page says Pythran takes advantage of multi-cores and SIMD instruction units [^2]. Pythran is BSD-3-Clause licensed [^2].

## What PyOverdrive is built for

PyOverdrive is made by the team that publishes this site.

PyOverdrive lets a developer call pyoverdrive.enable() to patch supported NumPy functions so existing code uses faster paths, and unsupported calls run on stock NumPy [^3]. A fast path runs only when a check confirms the input is in its measured range, and anything else or a fast path that raises an error goes to stock NumPy [^3].

PyOverdrive can compare every fast path with stock NumPy on the developer's own machine through python -m pyoverdrive --selfcheck [^3]. A developer can run python -m pyoverdrive --calibrate to retime threaded paths at their thresholds on the CPU and switch off paths that do not pay there [^3].

PyOverdrive can show which path a call would take and why without running the call through pyoverdrive.explain() [^3]. A developer can turn off one fast path with disable_path() or PYOVERDRIVE_DISABLE, or restore original NumPy functions with pyoverdrive.disable() [^3].

## Pricing and fees

Bottleneck is distributed under a Simplified BSD license [^1]. Pythran is BSD-3-Clause licensed [^2]. The facts provided for Bottleneck and Pythran do not state paid plans or prices, so prices are not published here.

PyOverdrive is open source under the MIT License [^3]. The product claims provided here do not state a paid plan or price, so a paid price is not published here.

## Setting it up and daily use

Bottleneck provides binary wheels on PyPI for the most common platforms [^1].

Pythran's page says it supports Python 3.7 and upward [^2]. Its page says it takes advantage of multi-cores and SIMD instruction units [^2]. The sources here say nothing more about its setup or routine use.

PyOverdrive is installed with pip straight from the GitHub repository [^3]. It needs Python 3.12 or newer [^3]. A developer can run python -m pyoverdrive --demo to time headline operations with stock NumPy and PyOverdrive on the developer's machine, in about 20 seconds [^3].

## Things to check before you choose

Check which kind of NumPy work needs support and whether the tool's stated supported cases match the code. Bottleneck's facts describe supported array dtypes [^1]. PyOverdrive's claims describe supported paths and fallback behavior [^3].

Check the Python version and installation method required by the tool. PyOverdrive needs Python 3.12 or newer [^3] and installs with pip from its GitHub repository [^3].

Check which pricing and account details matter for the project, because the provided facts do not state paid plans or account requirements for these tools.

## How to choose

If the need is a collection of fast NumPy array functions written in C, Bottleneck's page describes that purpose [^1].

If the need is an ahead of time compiler for a subset of Python focused on scientific computing, Pythran's page describes that purpose [^2].

If the need is to patch supported NumPy functions while keeping unsupported calls on stock NumPy, PyOverdrive's claims describe that workflow [^3]. If the need is to inspect or control fast paths, PyOverdrive's claims describe explain, calibration and disabling options [^3] [^3] [^3].

## Frequently asked questions

### Is Bottleneck or Pythran better for NumPy acceleration?

Bottleneck's page describes a collection of fast NumPy array functions written in C [^1]. Pythran's page describes an ahead of time compiler for a subset of Python with a focus on scientific computing [^2]. The right choice depends on whether the described purpose matches the code and workflow being considered.

### What does PyOverdrive do for NumPy code?

PyOverdrive patches supported NumPy functions after calling pyoverdrive.enable(), so existing code uses faster paths and unsupported calls run on stock NumPy [^3]. It can also explain which path a call would take and why without running the call [^3].

### Does Bottleneck support every NumPy array type?

Bottleneck's page says only arrays with data type int32, int64, float32 and float64 are accelerated [^1]. Its page says other dtypes use slower unaccelerated functions [^1]. Check the array types used by a project against these stated types.

### How do you install PyOverdrive?

PyOverdrive is installed with pip straight from the GitHub repository [^3]. It needs Python 3.12 or newer [^3]. The package is marked OS independent, and its test suite has been run on Windows and Linux x86-64 [^3].

### Can PyOverdrive disable an acceleration path?

PyOverdrive lets a developer turn off one fast path with disable_path() or PYOVERDRIVE_DISABLE, or call pyoverdrive.disable() to restore the original NumPy functions [^3]. Its sources also describe checks that send unsupported cases back to stock NumPy [^3].

It is open source under the MIT License. [^3] - [Visit PyOverdrive](/go/bottleneck-vs-pythran)

## Sources

[^1]: Bottleneck, github.com/pydata/bottleneck, read 2026-10-07 (https://github.com/pydata/bottleneck)
[^2]: Pythran, github.com/serge-sans-paille/pythran, read 2026-10-07 (https://github.com/serge-sans-paille/pythran)
[^3]: PyOverdrive's own description of itself (the product of this site's publisher) (/go/bottleneck-vs-pythran)
