mpxj
Python wrapper for the MPXJ Java library for manipulating project files
What it is and what it does
MPXJ is a Python wrapper around the Java MPXJ library that lets you read, write, and manipulate project management files in formats like MPP, MPX, and MSPDI. It exposes the MPXJ object model so you can extract tasks, resources, assignments, and schedule data, or generate new project files programmatically.
You can use it for simple file format conversion, direct data extraction from existing project files, or building complete project schedules from scratch with tasks, resources, dependencies, and milestones. The package requires a Java runtime and handles lifecycle management explicitly in your code.
Use it for:
- Convert project files between formats without Microsoft Project installed.
- Extract task lists, resource assignments, and schedule data from existing project files for reporting.
- Programmatically generate new project schedules with tasks, dependencies, and resources.
- Integrate project file handling into Python-based project management tools.
- Migrate project data between systems by reading one format and writing another.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes project management file formats (MPP, MPX, XML, and others) by wrapping the Java MPXJ library, enabling project data extraction, conversion, and schedule generation from Python.
Yes, if you need to work with project files from Python and can manage a Java dependency. The package is actively maintained, has no known vulnerabilities, and low install friction. The copyleft license (LGPL-2.0-or-later) requires compliance if you distribute derivative works. Main consideration is explicit JVM lifecycle management in your code.
Install
mpxj on PyPI
pip
pip install mpxjuv
uv add mpxjpoetry
poetry add mpxjInstalling mpxj
Before you install
Low install friction; pure Python wheel with no compiled dependencies. Actively maintained with a recent release (2026-08-08) and steady repository activity.
License in practice
Licensed under LGPL-2.0-or-later (copyleft). Derivative works and modifications must be distributed under compatible terms; proprietary applications using this package must comply with copyleft obligations.
Quickstart
import mpxj
# Start JVM, read project file, extract tasks, shutdown JVM
# See documentation for full examples of file conversion and schedule generation
Requires a Java Runtime Environment (JRE) installed; explicit JVM lifecycle management required in calling code.
Verify before relying
- Whether JPype is automatically installed as a dependency or must be manually installed separately.
- Performance characteristics when working with large project files or complex schedules.
- Compatibility matrix with specific Microsoft Project versions and file format variants.
- Complete list of supported project file formats beyond MPP, MPX, and MSPDI.
Package facts
| License | LGPL-2.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 179,893/month — #10,160 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mpxj-16.7.0-py3-none-any.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
aspose-cellsAspose.Cells for Python via Java is a library…
unclear · top 15,000 on PyPI
javapropertiesReads and writes Java .properties files in both…
permissive · top 5,000 on PyPI
jpype1JPype provides Python access to Java classes…
permissive · top 1,000 on PyPI
pygexfPygexf writes network graph data to GEXF (Graph…
unclear · top 15,000 on PyPI
docxCreates, reads, and writes Microsoft Office…
unclear · top 15,000 on PyPI
mmdb-writerGenerates MaxMind DB (MMDB) format files from…
permissive · top 15,000 on PyPI
tabula-pyExtracts tables from PDF files and converts…
permissive · top 5,000 on PyPI
py4jPy4J enables Python programs to dynamically…
permissive · top 1,000 on PyPI
JayDeBeApiJayDeBeApi bridges Python to Java JDBC database…
copyleft · top 5,000 on PyPI
python-evtxParses Windows Event Log files (.evtx) into…
permissive · top 15,000 on PyPI