[ANN] Unified Julia–Python project management ( jupy-cli )
I’ve been working on jupy-cli, which is a small cross-platform CLI for hybrid Julia–Python projects. The main idea is to treat the project environments
Project.toml
Manifest.toml
.venv/
requirements.txt
as one full project rather than two separately managed environments.
Julia dependencies are still handled by Pkg.jl, Python dependencies by pip, and interoperability is managed by PythonCall.jl. The jupy CLI adds a project-level layer that coordinates them.
The basic workflow is:
jupy # initialize/enter the project
jupip install numpy # pip into the project's .venv
jupy simulation.jl # Julia with the project active
jupy analysis.py # Python through the same .venv
jupyup # update the CLI
PythonCall is configured to use the same project-local .venv, so Julia and Python execution share a consistent Python environment within a single root directory.
I think of it as a lightweight meta-manager that lives above Pkg, pip, and PythonCall, rather than a replacement for any of them.
Here’s a pretty diagram of the model:
jupy
│
project/
│
┌─────────────┴─────────────┐
│ │
native Julia native Python
│ │
Pkg.jl pip
│ │
Project.toml .venv/
Manifest.toml requirements.txt
│ │
└──────── PythonCall ───────┘
The current release is v0.0.2, with CI on Linux, macOS, and Windows.
I’d particularly appreciate feedback on the environment model, PythonCall/CondaPkg interactions, and edge cases I may have missed.