Registry / http-networking / pyepics

pyepics

JSON →
library3.5.10pypypi✓ verified 86d ago

A Python interface to the Epics Channel Access protocol, providing client-side access to EPICS process variables (PVs). Current version 3.5.9, supports Python >=3.10. Released roughly every few months.

pip install pyepics
INSTALL
IMPORT
SIG · PYEPICS
P
pyepics
http-networkingpythonv3.5.10
Install
4.0s avg
Import
433ms
Disk
105MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v3.5.10 · 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
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.444s · 105.5MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 4.0s · import 0.422s · 102MB
105MB installed
● package 105MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

PV
from epics import PV
from pyepics import PV
The top-level package is 'epics', not 'pyepics'. 'pyepics' is the distribution name.
caget
from epics import caget
from epics.ca import caget
caget is exposed at the epics level, though available in epics.ca. Use epics.caget for brevity.
caput
from epics import caput
import caput
caput is a function in the epics module, not a standalone package.

Basic usage: create a PV, get/put values, and monitor changes.

from epics import PV, caget, caput # Connect to a PV pv = PV('my_pv_name') print('Connected:', pv.connect()) # Get value value = pv.get() # or caget('my_pv_name') print('Value:', value) # Put value caput('my_pv_name', 42.0) # or pv.put(42.0) # Monitor callback def callback(pvname, value, **kw): print(f'{pvname} = {value}') pv.add_callback(callback)
Debug
Known issues
gotchaThe top-level package is 'epics', not 'pyepics'. Always import from 'epics'.
fix
Use 'from epics import PV' instead of 'from pyepics import PV'.
affects: all
breakingPython 3.9 support dropped in version 3.5.9. Python >=3.10 required.
fix
Upgrade Python to 3.10 or later. Use pyepics <3.5.9 if stuck on Python 3.9.
affects: >=3.5.9
gotchaCallbacks are invoked in a separate thread. Ensure thread safety when modifying shared state.
fix
Use threading locks or queue data to main thread.
affects: all
deprecatedThe wxlib module is outdated and uses deprecated wxPython APIs. It may break in future releases.
fix
Avoid wxlib if possible, or prepare to migrate to alternative GUI libraries.
affects: >=3.5.9
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'pyepics'
Trying to import 'pyepics' directly. The correct import is 'epics'.
fix
Use 'from epics import PV' (the distribution is 'pyepics', but the package is 'epics').
AttributeError: module 'epics' has no attribute 'PV'
Incomplete import. 'epics.PV' is available only after importing from epics.
fix
Run 'from epics import PV' explicitly.
ConnectionRefusedError: No Connection: ...
EPICS Channel Access server not running or PV name incorrect.
fix
Verify the PV name and ensure the EPICS server is reachable (e.g., with caget from the command line).
Upgrade
Version history
3.5.10latest on PyPI · released May 20, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
32 hits · last 30 days
node
28
OpenAI (training)
1
Resources
pyepics — pip install pyepics · libregistry