Install & Compatibility
Where this runs
tested against v2.4 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.920 runs
installs and imports cleanly · install 0.0s · import 0.010s · 19.2MB
glibcpy 3.10–3.920 runs
installs and imports cleanly · install 2.4s · import 0.010s · 20MB
17MB installed
● package 17MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ProgressBar
✓ from progressbar import ProgressBar
✗ from progressbar33 import ProgressBar
Despite the package name `progressbar33`, the module itself is named `progressbar`. Importing `from progressbar33` will result in a `ModuleNotFoundError`.
widgets
✓ from progressbar import Percentage, Bar, ETA
Common widget classes like `Percentage`, `Bar`, `ETA`, etc., are also imported from the `progressbar` module.
This quickstart demonstrates how to create a basic progress bar using `progressbar33` (which imports as `progressbar`). It initializes a `ProgressBar` with a list of widgets and updates it within a loop. The `with` statement ensures the progress bar is properly finished and cleaned up.
import time
from progressbar import ProgressBar, Percentage, Bar, RotatingMarker, ETA
# Define widgets for the progress bar
widgets = [
'Processing: ', Percentage(),
' ', Bar(marker=RotatingMarker()),
' ', ETA(),
]
# Initialize the progress bar with a maximum value
max_items = 50
with ProgressBar(widgets=widgets, max_value=max_items) as bar:
for i in range(max_items):
# Simulate some work
time.sleep(0.1)
# Update the progress bar
bar.update(i + 1)
print('\nTask Completed!')
Debug
Known issues
breakingNamespace Collision: Installing `progressbar33` will install a module named `progressbar`. If the more actively maintained `progressbar` library (PyPI: `progressbar`, often used with `import progressbar`) is also installed or intended to be used, this will lead to conflicts and unpredictable behavior, as both attempt to provide `import progressbar`. It is strongly recommended to use separate virtual environments or choose only one library.fixAlways use a dedicated virtual environment for your project. If you intend to use `progressbar33`, ensure the other `progressbar` library is not installed in the same environment. Consider migrating to the more active `progressbar` library if its features meet your needs.
affects: All versions of progressbar33
gotchaPython 3 Only: Despite `requires_python: None` being listed on PyPI, the library explicitly requires Python 3.4 or higher as per its `setup.py` (`python_requires='>=3.4'`). Attempting to use it with Python 2.x will result in compatibility errors.fixEnsure your project's Python interpreter is version 3.4 or newer.
affects: All versions of progressbar33
gotchaForgetting `bar.finish()`: If you do not use the `with` statement context manager when creating your `ProgressBar` instance, you must explicitly call `bar.finish()` after the loop or process completes. Failing to do so will leave the progress bar display incomplete or improperly terminated.fixWrap your progress bar usage in a `with` statement (e.g., `with ProgressBar(...) as bar:`), or explicitly call `bar.finish()` after your loop: `bar = ProgressBar(...).start(); for ...: bar.update(...); bar.finish()`.
affects: All versions
gotcha`max_value` for finite iterables: For processes where the total number of iterations is known (e.g., iterating over a list or range), `max_value` must be explicitly set when initializing `ProgressBar`. If `max_value` is not set for a finite process, the progress bar may not display percentage or ETA correctly.fixInitialize `ProgressBar` with `max_value` set to the total count, e.g., `ProgressBar(max_value=len(my_list))` or `ProgressBar(max_value=100)`.
affects: All versions
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'progressbar33'
The Python package `progressbar33` installs an internal module named `progressbar`, not `progressbar33`.
fixChange your import statement from `from progressbar33 import ...` to `from progressbar import ...`.
AttributeError: 'ProgressBar' object has no attribute 'finish'
This error typically occurs if the `finish()` method was not explicitly called after the progress bar completed, and the `with` statement context manager was not used.
fixEnsure you either use a `with` statement: `with ProgressBar(...) as bar:` or manually call `bar.finish()` after your loop: `bar = ProgressBar(...).start(); ...; bar.finish()`.
TypeError: object of type 'ProgressBar' has no len()
The `ProgressBar` instance needs to know the total number of iterations to correctly display percentage and ETA, especially when iterating over a finite sequence. This error indicates `max_value` was not set.
fixInitialize `ProgressBar` with `max_value` set to the total count: `bar = ProgressBar(max_value=total_iterations)`.
SyntaxError: invalid syntax (on Python 2.x)
progressbar33 is a Python 3.4+ library and contains syntax incompatible with Python 2.x.
fixRun your application with a Python 3.x interpreter (specifically 3.4 or newer).
Upgrade
Version history
2.4latest on PyPI · released Aug 29, 2014
Audit
Dependencies
No dependency data recorded yet.