Skip to content

gijzelaerr/python-snap7

Repository files navigation

About

Python-snap7 is a pure Python S7 communication library for interfacing with Siemens S7 PLCs.

The name "python-snap7" is historical — the library originally started as a Python wrapper around the Snap7 C library. As of version 3.0, the C library is no longer used, but the name is kept for backwards compatibility.

Python-snap7 is tested with Python 3.10+, on Windows, Linux and OS X.

The full documentation is available on Read The Docs.

Version 3.0 - Pure Python Rewrite

Version 3.0 is a ground-up rewrite of python-snap7. The library no longer wraps the C snap7 shared library — instead, the entire S7 protocol stack (TPKT, COTP, and S7) is now implemented in pure Python. This is a breaking change from all previous versions.

Why this matters:

  • Portability: No more platform-specific shared libraries (.dll, .so, .dylib). python-snap7 now works on any platform that runs Python — including ARM, Alpine Linux, and other environments where the C library was difficult or impossible to install.
  • Easier installation: Just pip install python-snap7. No native dependencies, no compiler toolchains, no manual library setup.
  • Easier to extend: New features and protocol support can be added directly in Python.

If you experience issues with 3.0:

  1. Please report them on the issue tracker with a clear description of the problem and the version you are using (python -c "import snap7; print(snap7.__version__)").

  2. As a workaround, you can pin to the last pre-3.0 release:

    $ pip install "python-snap7<3"
    

    The latest stable pre-3.0 release is version 2.1.0. Documentation for pre-3.0 versions is available at Read The Docs.

Installation

Install using pip:

$ pip install python-snap7

No native libraries or platform-specific dependencies are required — python-snap7 is a pure Python package that works on all platforms.

About

a pure Python S7 communication library for interfacing with Siemens S7 PLCs

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Languages