Install & Compatibility
Where this runs
tested against v2.7.0 · 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.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 17.8MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.5s · import 0.000s · 18MB
16MB installed
● package 16MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ExitStatus
✓ from exitstatus import ExitStatus
ExitStatus is an IntEnum subclass that defines all POSIX exit codes.
EX_OK
✓ from exitstatus import ExitStatus
exit_code = ExitStatus.success
✗ from exitstatus import EX_OK
Do not import individual constants directly; they were removed in v2.0.0. Use the ExitStatus enum instead.
Use ExitStatus IntEnum for clear, self-documenting exit codes.
import sys
from exitstatus import ExitStatus
sys.exit(ExitStatus.success) # exit code 0
# sys.exit(ExitStatus.failure) # exit code 1
# sys.exit(ExitStatus.usage) # exit code 64
Errors
Common errors & fixes
ImportError: cannot import name 'EX_OK' from 'exitstatus'
Direct import of EX_* constants was removed in v2.0.0.
fixUse 'from exitstatus import ExitStatus' and access ExitStatus.success.
AttributeError: module 'exitstatus' has no attribute 'EX_OK'
Trying to access EX_OK directly on the module after importing exitstatus.
fixUse 'from exitstatus import ExitStatus' and then ExitStatus.success.
Upgrade
Version history
2.7.0latest on PyPI · released Jan 1, 2026
Audit
Dependencies
No dependency data recorded yet.