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 (32-bit and 64-bit) |
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 (PySide6 and psutil, used by the GUIβs process picker).
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β60Γ 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.