pysoem
Cython wrapper for the SOEM Library
Decision gist · record as of 2026-08-14
Yes, if you need to control or test EtherCAT devices from Python and can meet the runtime requirements (administrator privileges on Linux/macOS, Npcap/WinPcap on Windows). The package is actively maintained, has no known vulnerabilities, and offers permissive licensing. Medium install friction is typical for industrial protocol libraries with compiled extensions; pre-built wheels mitigate most of that cost. Not suitable if you need Python versions older than 3.10 or cannot run with elevated privileges.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Linux and macOS require administrator/root privileges to execute scripts using PySOEM.
- Windows requires Npcap (in WinPcap API-compatible mode) or WinPcap to be installed before use.
- Medium install friction due to compiled C extensions requiring platform-specific wheels.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing commercial and private use with minimal restrictions. You may use, modify, and distribute this package freely provided you include the original license notice.
last release 2026-01-11 (215 days) · last repo commit 2026-03-24 · 159 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 78,834 downloads/mo, #14,403 on PyPI
Alternatives
Verify before relying
import pysoem
master = pysoem.Master()
master.open('eth0')
master.scan_and_group()
master.config_init()
# Read/write process data and SDO registers as needed
master.close()- Whether Python 3.14 wheels mentioned in v1.1.13 changelog are actually available on PyPI or planned for a future release.
- Real-time performance guarantees or latency characteristics for industrial control loops.
- Support status for Python versions older than 3.10 or newer than 3.12.
What it is and what it does
PySOEM wraps the Simple Open EtherCAT Master Library in Python via Cython, allowing developers to build EtherCAT master applications in Python rather than C. It handles the low-level complexity of EtherCAT protocol communication—including process data I/O, SDO (Service Data Object) read/write, EEPROM access, and FoE (Firmware over EtherCAT)—so you can focus on device testing and control logic.
The package is distributed as pre-compiled wheels for modern Python versions (3.10–3.12) on Linux, macOS, and Windows, eliminating the need to compile SOEM yourself. It is actively maintained, with recent updates adding No-GIL support and ARM64 wheel availability. Real-time applications using PySOEM require special consideration, and Linux/macOS execution requires administrator privileges; Windows requires a packet capture driver (Npcap or WinPcap).
Use it for
- Test and validate EtherCAT slave devices during development without writing C code.
- Build Python-based automation scripts for industrial control systems that communicate over EtherCAT networks.
- Read and write device configuration via SDO registers and EEPROM in a Python environment.
- Perform firmware updates on EtherCAT devices using FoE (Firmware over EtherCAT) from Python.
- Monitor and log real-time process data from multiple EtherCAT slaves in a single master application.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to control or test EtherCAT devices from Python and can meet the runtime requirements (administrator privileges on Linux/macOS, Npcap/WinPcap on Windows).
The package is actively maintained, has no known vulnerabilities, and offers permissive licensing. Medium install friction is typical for industrial protocol libraries with compiled extensions; pre-built wheels mitigate most of that cost. Not suitable if you need Python versions older than 3.10 or cannot run with elevated privileges.
Install
pysoem on PyPI
Before you install
Medium install friction due to compiled C extensions requiring platform-specific wheels. Wheels are available for Python 3.10–3.12 across Linux (x86_64, aarch64, musl), macOS (Intel and ARM), and Windows (64-bit). Linux and macOS require administrator privileges at runtime; Windows requires Npcap or WinPcap installed.
Linux and macOS require administrator/root privileges to execute scripts using PySOEM. Windows requires Npcap (in WinPcap API-compatible mode) or WinPcap to be installed before use.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions. You may use, modify, and distribute this package freely provided you include the original license notice.
Quickstart
import pysoem
master = pysoem.Master()
master.open('eth0')
master.scan_and_group()
master.config_init()
# Read/write process data and SDO registers as needed
master.close()
Verify before relying
- Whether Python 3.14 wheels mentioned in v1.1.13 changelog are actually available on PyPI or planned for a future release.
- Real-time performance guarantees or latency characteristics for industrial control loops.
- Support status for Python versions older than 3.10 or newer than 3.12.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 215 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 78,834 / month, #14,403 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 2 - Pre-AlphaLicense :: OSI Approved :: MIT LicenseProgramming Language :: CProgramming Language :: CythonProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: Implementation :: CPythonTopic :: Scientific/Engineering |
Evidence: pysoem-1.1.13-cp310-cp310-macosx_10_9_x86_64.whl; pysoem-1.1.13-cp310-cp310-macosx_11_0_arm64.whl; pysoem-1.1.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pysoem-1.1.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pysoem-1.1.13-cp310-cp310-musllinux_1_2_aarch64.whl; pysoem-1.1.13-cp310-cp310-musllinux_1_2_x86_64.whl; pysoem-1.1.13-cp310-cp310-win_amd64.whl; pysoem-1.1.13-cp311-cp311-macosx_10_9_x86_64.whl; pysoem-1.1.13-cp311-cp311-macosx_11_0_arm64.whl; pysoem-1.1.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pysoem-1.1.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pysoem-1.1.13-cp311-cp311-musllinux_1_2_aarch64.whl; pysoem-1.1.13-cp311-cp311-musllinux_1_2_x86_64.whl; pysoem-1.1.13-cp311-cp311-win_amd64.whl; pysoem-1.1.13-cp312-cp312-macosx_10_13_x86_64.whl; pysoem-1.1.13-cp312-cp312-macosx_11_0_arm64.whl; pysoem-1.1.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pysoem-1.1.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pysoem-1.1.13-cp312-cp312-musllinux_1_2_aarch64.whl; pysoem-1.1.13-cp312-cp312-musllinux_1_2_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “ethercat master python”
- pysoemPySOEM is a Cython wrapper for the Simple Open EtherCAT Master…
- gpsoauthImplements Google Play Services OAuth authentication for Python,…
- minimalmodbusMinimalmodbus provides a Python interface to communicate with Modbus…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also cysignals · pyisy · PyVISA-py · pypcap · canopen · pyserial-asyncio · cymem · pyeapi · PyVISA · py-ccm15