Install & Compatibility
Where this runs
tested against v2.6 · 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.048s · 18MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.6s · import 0.042s · 19MB
16MB installed
● package 16MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
TACACSClient
✓ from tacacs_plus.client import TACACSClient
Primary high-level client class.
Session
✓ from tacacs_plus.session import Session
Low-level session handling.
Flags
✓ from tacacs_plus.flags import *
TACACS+ protocol flags (e.g., TAC_PLUS_AUTHEN_TYPE_ASCII).
Basic TACACS+ authentication example.
from tacacs_plus.client import TACACSClient
client = TACACSClient(
host='tacacs.example.com',
port=49,
secret='shared_secret',
timeout=5
)
authenticated = client.authenticate(
username='admin',
password='supersecret',
authen_type=1 # ASCII
)
print('Authenticated:', authenticated)
Errors
Common errors & fixes
tacacs_plus.client.TACACSClient.authenticate() got an unexpected keyword argument 'timeout'
The 'timeout' argument was added in version 2.3; older versions do not accept it.
fixUpgrade to version 2.3 or later: pip install --upgrade tacacs-plus
AttributeError: module 'tacacs_plus' has no attribute 'TACACSClient'
Wrong import path: users try to import TACACSClient directly from top-level module.
fixUse correct import: from tacacs_plus.client import TACACSClient
TypeError: a bytes-like object is required, not 'str'
In Python 3, passing a string where bytes are expected (e.g., secret).
fixEnsure secret is a string; if you must use bytes, encode it properly: secret=b'secret'.decode() or use str.
Upgrade
Version history
2.6latest on PyPI · released Aug 20, 2018
Audit
Dependencies
sixrequiredUsed for Python 2/3 compatibility.