skillfed

mpxj

Python wrapper for the MPXJ Java library for manipulating project files

mpxj v16.7.0 179.9K downloads/30d#10,160 on PyPI339
Copyleft license LGPL-2.0-or-later Active released

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 mpxj

uv

uv add mpxj

poetry

poetry add mpxj

Installing 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

Operating System :: OS IndependentProgramming Language :: Python :: 3

Tags

project file format conversionread mpp mpx xml project filesproject management file parsingextract project tasks resourcesgenerate project schedulesproject data manipulationmicrosoft project file handling
project-managementfile-format-conversionjava-interop

More Utilities packages