Skip to main content

Requirements

  • Python 3.9 or higher
  • Linux (kernel 5.13+ with Landlock) or macOS (10.5+)

Install from PyPI

The simplest way to install nono-py:
pip install nono-py
Or with your preferred package manager:
pip install nono-py

Install from Source

To build from source, you need the Rust toolchain:

1. Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

2. Clone and Build

git clone https://github.com/always-further/nono-py.git
cd nono-py

# Install with pip
pip install .

# Or use maturin directly
pip install maturin
maturin develop

Verify Installation

import nono_py

# Check version
print(f"nono-py version: {nono_py.__version__}")

# Check platform support
info = nono_py.support_info()
print(f"Platform: {info.platform}")
print(f"Supported: {info.is_supported}")
print(f"Details: {info.details}")
Expected output on a supported system:
nono-py version: 0.1.0
Platform: macos
Supported: True
Details: Seatbelt sandbox available

Development Installation

For contributing or local development:
git clone https://github.com/always-further/nono-py.git
cd nono-py

# Create virtual environment
python -m venv .venv
source .venv/bin/activate

# Install dev dependencies and build
pip install maturin pytest mypy ruff
maturin develop

# Run tests
pytest tests/ -v
Or using uv:
git clone https://github.com/always-further/nono-py.git
cd nono-py

# Install dependencies and build
uv sync
uv run maturin develop

# Run tests
uv run pytest tests/ -v

Troubleshooting

ImportError: No module named ‘nono_py’

Ensure you’ve installed the package in your active environment:
pip list | grep nono
If using a virtual environment, make sure it’s activated.

Unsupported Platform

If is_supported() returns False:
  • Linux: Check your kernel version (uname -r). Landlock requires 5.13+.
  • macOS: Should work on any recent version.
  • Windows: Not supported.

Build Errors

If building from source fails:
  1. Ensure Rust is installed: rustc --version
  2. Update Rust: rustup update
  3. Check Python version: python --version (3.9+ required)
For detailed build instructions, see the Development Guide.