Registry / workflow / ppft
library1.7.8pypypi✓ verified 10d ago

ppft is a friendly fork of Parallel Python (pp), designed to provide distributed and parallel Python capabilities on Symmetric Multi-Processing (SMP) systems and clusters. It offers an easier installation process and enhanced serialization through the optional `dill` library. Currently at version 1.7.8, ppft maintains an active development and release cadence, with recent updates focused on Python 3 compatibility and dropping support for older Python versions.

pip install ppft
INSTALL
IMPORT
SIG · PPFT
P
ppft
workflowpythonv1.7.8
Install
1.7s avg
Import
127ms
Disk
17MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.7.8 · 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.910 runs
installs and imports cleanly · install 0.0s · import 0.133s · 19MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 1.7s · import 0.121s · 20MB
17MB installed
● package 17MB
Code
Verified usage

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

Server
import pp job_server = pp.Server()
from ppft import Server
ppft installs and is accessed via the `pp` module, maintaining compatibility with the original Parallel Python library. Directly importing from `ppft` is not the intended mechanism for core functionalities.
pp
import pp
The primary way to interact with ppft is by importing the `pp` module.

This quickstart demonstrates how to create a local `pp.Server`, submit a simple function for parallel execution, and collect the results. The server automatically manages worker processes.

import pp import math def my_function(a, b): return math.sqrt(a**2 + b**2) # Create a job server # The number of workers can be specified, e.g., pp.Server(4) job_server = pp.Server() # Submit jobs jobs = [] for i in range(10): jobs.append(job_server.submit(my_function, (i, i+1), ())) # func, args, modules # Retrieve results results = [job() for job in jobs] print(f"Calculated results: {results}") # Destroy the job server job_server.destroy()
Debug
Known issues
breakingPython 2.x support was dropped in early versions, and Python 3.x minimum requirements have increased incrementally. Version 1.7.8 requires Python >=3.9, and upcoming versions (e.g., 1.7.9.dev0 documentation) indicate a requirement of Python >=3.10. Ensure your Python environment meets the specific version's requirements.
fix
Upgrade your Python environment to 3.9 or higher. For future compatibility, target Python 3.10+.
affects: All versions >=1.7.6.8 (Python 3.8 dropped), >=1.7.8 (Python 3.9 dropped).
gotchappft installs itself as the 'pp' module. If the original 'Parallel Python' (pp) library is already installed in your environment, 'import pp' may point to the original library instead of the ppft fork. This can lead to unexpected behavior or missing features.
fix
Before installing ppft, uninstall any existing 'pp' installations: `pip uninstall pp`.
affects: All versions where the original 'pp' library might be present.
gotchaFor enhanced serialization of complex Python objects (e.g., lambdas, nested functions, objects with custom serialization), it is highly recommended to install ppft with the optional 'dill' dependency. Without it, some objects might fail to serialize correctly for parallel execution.
fix
Install ppft using `pip install ppft[dill]` to include the `dill` library for improved serialization.
affects: All versions.
Errors
Common errors & fixes
import ppft
ppft installs itself as the 'pp' module, and core functionalities are accessed via `import pp`. Directly importing from `ppft` is not the intended mechanism for using the library's core features.
fix
Use `import pp` to access the library's functionalities. For example, `job_server = pp.Server()`.
ModuleNotFoundError: No module named 'pp'
This error occurs when the Python interpreter cannot find the 'pp' module, which is how ppft is imported. This can be due to ppft not being installed, being installed in a different Python environment, or issues with the Python path.
fix
Ensure ppft is installed in your active Python environment using `pip install ppft`. If you have the original 'Parallel Python' (pp) library installed, uninstall it first (`pip uninstall pp`) to avoid conflicts, then install `ppft`.
AttributeError: Can't get attribute 'PartialSum' on <module 'ppft.__main__' from '...'>
This specific AttributeError indicates a serialization issue, often encountered when using ppft with newer Python versions (e.g., Python 3.13) where there might be incompatibilities with how objects are pickled or unpickled across processes.
fix
Ensure your Python version meets ppft's requirements (version 1.7.8 requires Python >=3.9; newer versions may require >=3.10). If the issue persists, consider installing ppft with the optional 'dill' dependency (`pip install ppft[dill]`) for enhanced serialization, as dill can handle more complex Python objects than the default pickle module.
TypeError: cannot pickle 'function' object
ppft, like other parallel processing libraries, relies on serialization (pickling) to pass functions and objects between processes. This error occurs when a function or object you are trying to pass for parallel execution cannot be serialized by the default `pickle` module, often due to closures, lambda functions, or objects with complex states.
fix
Install ppft with the optional `dill` dependency using `pip install ppft[dill]`. `dill` provides enhanced serialization capabilities that can handle a wider range of Python objects and functions, resolving many pickling issues.
Upgrade
Version history
1.7.8latest on PyPI · released Jan 19, 2026
Audit
Dependencies
dilloptionalOptional, for enhanced serialization of complex Python objects.
setuptoolsrequiredRequired for building and installation.
Agent activity
31 hits · last 30 days
node
16
Amazon
1
Resources
ppft — pip install ppft · libregistry