Skip to main content

Self-contained Python app with urllib3 HTTP requests

Project description

PyConsole

Smart Python application runner that automatically sets up virtual environments and manages dependencies for seamless deployment.

✅ CI/CD Status

All tests passing! Automated publishing workflow ready.

What This Does

Creates an intelligent executable that:

  • Single-file deployment: Just copy the executable, nothing else needed
  • Auto-environment setup: Automatically creates .venv and installs dependencies on first run
  • Dual-mode operation:
    • Bundled mode: All dependencies included for immediate execution
    • Development mode: Auto-creates virtual environment when pyproject.toml is present
  • Smart dependency management: Handles large ML libraries by letting users manage their own .venv
  • Cross-platform: Works on Windows, Linux, and macOS

Quick Start

Prerequisites

Build Portable Executable

# Install dependencies
uv sync

# Build self-contained executable
python build_exe.py

Deploy Anywhere

Copy just ONE file to any system:

  • pyconsole-portable.exe (Windows) or pyconsole-portable (Linux/macOS)

That's it! The executable handles everything automatically.

Project Structure

pyconsole/
├── app.py              # Main application with auto-venv setup
├── build_exe.py        # Build script
├── pyproject.toml      # Project config and dependencies
├── CLAUDE.md           # Development guide for Claude Code
└── README.md           # This file

How It Works

Bundled Mode (Single File)

When you run the standalone executable:

  • All dependencies are bundled inside the executable
  • No external files or internet connection required
  • Runs immediately on any system

Development Mode (Auto-Venv)

When running from source or with pyproject.toml present:

  1. First run: Automatically creates .venv and installs dependencies
  2. Subsequent runs: Uses the existing virtual environment
  3. Dependency changes: Auto-updates the virtual environment
  4. Large libraries: Perfect for ML libraries - users manage their own .venv

Smart Features

  • Environment detection: Automatically detects if running from executable or source
  • uv first: Uses uv for faster dependency management when available
  • Fallback support: Gracefully falls back to standard venv if uv is not available
  • Error handling: Continues even if venv setup fails
  • Cross-platform: Works on Windows, Linux, and macOS

Development

# Run in development (auto-sets up venv)
python app.py

# Force rebuild venv
rm -rf .venv && python app.py

# Build executable
python build_exe.py

Use Cases

  • Distributing Python apps to end users: Single file, no technical knowledge required
  • ML/AI applications: Users can manage large dependencies in their own .venv
  • Corporate environments: Restricted installations, no admin rights needed
  • Demos and prototypes: "Just works" without setup hassle
  • CI/CD pipelines: Automated testing and deployment
  • Education: Students can run Python apps without installation

Future Plans

  • pip package: pip install pyconsole-portable
  • uvx support: uvx pyconsole-portable (run without installation)
  • Plugin system: Extendable architecture for different application types
  • GUI support: Windowed applications with auto-dependency management

Benefits Over Traditional Approaches

Traditional PyInstaller PyConsole
Large executable size Smart bundling
Manual dependency management Automatic venv setup
No development mode Dual-mode operation
Static dependencies Dynamic dependency management
Single-use Reusable across projects

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyconsole_portable-0.1.0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyconsole_portable-0.1.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file pyconsole_portable-0.1.0.tar.gz.

File metadata

  • Download URL: pyconsole_portable-0.1.0.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.19

File hashes

Hashes for pyconsole_portable-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dcb12c40fcbbf74b9286c9b06b552dc448aba0741acc48e4fd45f4ccededc0da
MD5 54ac55d399061cb716a39ab01d3ce24b
BLAKE2b-256 2ae61423d43c2c1179426002adb09f67304b2014ffb4a99cb096bcffe387dce4

See more details on using hashes here.

File details

Details for the file pyconsole_portable-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pyconsole_portable-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7d963ba5ddaecd5eb431b2694669b3de95c626e4d682e5e13fe1edf7876942f
MD5 7367d4dfd8a432c6eb5582b704a0b3a4
BLAKE2b-256 6ff502545b10e469ac26c0bbea27a846838f3db0aca471a272626c0f5b08815d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page