Installationο
PyMemoryEditor is published on PyPI as a pure-Python wheel β there is no native build step or compiler required on any platform.
Requirementsο
| Python | 3.10 or newer |
| Operating systems | πͺ Windows Β· π§ Linux Β· π macOS |
Install the libraryο
pip install PyMemoryEditor
Install with the bundled GUI appο
The library ships an optional Cheat Engine-style GUI built on PySide6
(Qt for Python). To install it, use the app extra:
pip install "PyMemoryEditor[app]"
Once installed, launch the app from any terminal:
pymemoryeditor
The library itself stays dependency-free β only the app extra pulls in its
dependencies.
See the GUI App guide for a tour of every feature.
Install with scan acceleration (speed)ο
Scans run in pure Python by default β no dependencies, works everywhere. If you
scan large processes often, the optional speed extra pulls in
NumPy and automatically vectorizes the
inner comparison loop of the typed numeric scans (BIGGER_THAN,
SMALLER_THAN, VALUE_BETWEEN, β¦):
pip install "PyMemoryEditor[speed]"
Thatβs the only change required β there is no new API and no flag to toggle. PyMemoryEditor detects NumPy at import time and switches the fast path on; if NumPy is absent it falls back to the pure-Python loop transparently. The results are identical either way β only the speed changes (typically ~10β30Γ faster on selective scans of large regions). See Scan acceleration for details and benchmarks.
NumPy ships prebuilt wheels for Windows, Linux and macOS, so the speed extra
stays compiler-free and cross-platform β no native build step on any OS.
Install from sourceο
git clone https://github.com/JeanExtreme002/PyMemoryEditor.git
cd PyMemoryEditor
pip install -e ".[dev]"
The dev extra installs the test toolchain (pytest, pytest-xdist,
pytest-qt, hypothesis, mypy, etc.) β see
CONTRIBUTING.md
for the development workflow.
Verifying the installationο
import PyMemoryEditor
print(PyMemoryEditor.__version__)
If that prints a version number, youβre ready to go β head to the Quick Start.
Platform-specific notesο
πͺ Windows
Works out of the box. To attach to protected processes (system services, elevated apps), run your terminal as Administrator.
π§ Linux
Access depends on ptrace_scope and process ownership. If the target is not
a child of the caller and ptrace_scope=1 (the common default), youβll see a
PermissionError. Run as root, or relax it:
sudo sysctl kernel.yama.ptrace_scope=0
π macOS
Opening another process requires the Python binary to be signed with the
com.apple.security.cs.debugger entitlement (or SIP disabled and root).
Opening the current process always works β handy for self-inspection and
experimentation.
For the long version, see Platform Notes.