Skip to main content

Pynball

Centralized management and utilization of all your Python versions, installations and virtual environments.

PyPI Downloads Status Python Version tests Codecov CodeQl pre-commit.ci status readthedocs CodeFactor Codeclimate Imports: isort Code style: black Checked with mypy security: bandit Commitizen friendly Conventional Commits DeepSource license pydough

You may have a requirement for development on various versions of Python. Or you may have a mixture of installations including pyenv, custom installations, system installations etc. Pynball can make leveraging such environments a lot easier.

Features


  • Consolidates all Python installations including pyenv versions into a single management system.
  • Easily create Virtual Environments using any Python version.
  • Track which virtual environments have which Python versions and tox versions.
  • Quickly change the System interpreter

Pre Installation Requirements


Minimum Requirements

  1. Python 3.10+
  2. pipx
  3. Virtualenv (which has benefits over venv)
  4. Virtualenvwrapper

For Maximum Benefits additionally install the following:

  1. pyenv

Installation


OS X & Linux:

Will be supported in version 2

Windows:

pipx install pynball

Usage example


View Available commands

pynball
Usage: pynball [OPTIONS] COMMAND [ARGS]...

  Utility script to help manage development with various versions of Python in
  conjunction with Virtual Environments and optionally the pyenv module

Options:
  --help  Show this message and exit.

Commands:
  add         Adds a name / path of an installation of Python.
  addall      Add all versions to the Pynball configuration.
  delete      Deletes a name / path of an installation of Python.
  exportconf  Creates a configuration file backup.
  importconf  Creates a configuration from a file backup
  lsproject   Displays all Virtual Environment projects (with versions: native, tox and pyenv)
  mkproject   Creates a Virtual Environment from a specific Python version.
  mvproject   Renames a Virtual Environment (optionally updates GitHub and git)
  pyenv       Automatically include the pyenv versions in Pynball
  reset       Deletes all names / paths
  rmproject   Deletes a Virtual Environment.
  system      Changes the system Python Interpreter version.
  version     Display details about the system Python Interpreter.
  versions    Lists the names / paths of the configured Python installations

Add a Python version to the config

pynball versions
D:\PYTHON\3.9.10 : --> System Interpreter
WARNING: Pynball configuration is empty - use 'add' command
pynball add 3.8.10 D:\PYTHON\3.8.10
'3.8.10' Successfully added to configuration
pynball versions
D:\PYTHON\3.9.10 : --> System Interpreter
3.8.10    D:\PYTHON\3.8.10
WARNING: System Interpreter is not in Pynball Configuration

Add all manually installed Python versions to the config

pynball addall
'3.10.4' Successfully added to configuration
'3.5.4' Successfully added to configuration
'3.6.8' Successfully added to configuration
'3.7.9' Successfully added to configuration
WARNING: '3.8.10' already added to configuration as '3.8.10'
'3.9.10' Successfully added to configuration
pynball versions
3.10.4    D:\PYTHON\3.10.4
3.9.10    D:\PYTHON\3.9.10 : --> System Interpreter
3.8.10    D:\PYTHON\3.8.10
3.7.9     D:\PYTHON\3.7.9
3.6.8     D:\PYTHON\3.6.8
3.5.4     D:\PYTHON\3.5.4

Add pyenv Python versions (if any) to the config

pynball pyenv -u
'3.10.2' Successfully added to configuration
'3.5.2' Successfully added to configuration
'3.8.0' Successfully added to configuration
3.10.4    D:\PYTHON\3.10.4
3.10.2    C:\Users\conta\.pyenv\pyenv-win\versions\3.10.2
3.9.10    D:\PYTHON\3.9.10 : --> System Interpreter
3.8.10    D:\PYTHON\3.8.10
3.8.0     C:\Users\conta\.pyenv\pyenv-win\versions\3.8.0
3.7.9     D:\PYTHON\3.7.9
3.6.8     D:\PYTHON\3.6.8
3.5.4     D:\PYTHON\3.5.4
3.5.2     C:\Users\conta\.pyenv\pyenv-win\versions\3.5.2
pynball versions
3.10.4    D:\PYTHON\3.10.4
3.10.2    C:\Users\conta\.pyenv\pyenv-win\versions\3.10.2
3.9.10    D:\PYTHON\3.9.10 : --> System Interpreter
3.8.10    D:\PYTHON\3.8.10
3.8.0     C:\Users\conta\.pyenv\pyenv-win\versions\3.8.0
3.7.9     D:\PYTHON\3.7.9
3.6.8     D:\PYTHON\3.6.8
3.5.4     D:\PYTHON\3.5.4
3.5.2     C:\Users\conta\.pyenv\pyenv-win\versions\3.5.2

Create a virtual environment using a version in the config

pynball mkproject 3.8.10 hobgoblin

List all the virtual environments

pynball lsproject
Project Name             Native Version           Pyenv Versions        Tox Versions
============             ==============           ==============        ============
hobgoblin                3.8.10                   -                     3.8, 3.9, 3.10
organizer                3.9.10                   -                     -
pizazz                   3.9.10                   -                     -
template                 3.9.10                   -                     -

Change system interpreter

pynball system 3.6.8
pynball versions
3.10.4    D:\PYTHON\3.10.2
3.10.2    C:\Users\conta\.pyenv\pyenv-win\versions\3.10.2
3.9.10    D:\PYTHON\3.9.10
3.8.10    D:\PYTHON\3.8.10
3.8.0     C:\Users\conta\.pyenv\pyenv-win\versions\3.8.0
3.7.9     D:\PYTHON\3.7.9
3.6.8     D:\PYTHON\3.6.8 : --> System Interpreter
3.5.4     D:\PYTHON\3.5.4
3.5.2     C:\Users\conta\.pyenv\pyenv-win\versions\3.5.2

For more information, please refer to the wiki

Documentation


Read the Docs

Wiki

Meta


Stephen R A King : sking.github@gmail.com

Distributed under the MIT license. See for more information.

Created with Cookiecutter template: pydough version 1.2.1

Digital object identifier: DOI

Download files

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

Source Distribution

pynball-1.5.9.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

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

pynball-1.5.9-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file pynball-1.5.9.tar.gz.

File metadata

  • Download URL: pynball-1.5.9.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for pynball-1.5.9.tar.gz
Algorithm Hash digest
SHA256 d5c609c7f5dfc7630e8cae25c596e4a7ccf4d70052cd02df964a75bbe94c4776
MD5 f30bea002989414519a51431c43fe906
BLAKE2b-256 3fbd0966b4deeb00ca70de5221eee91b320bf79ba738b8b7ee155b2f504b057c

See more details on using hashes here.

File details

Details for the file pynball-1.5.9-py3-none-any.whl.

File metadata

  • Download URL: pynball-1.5.9-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for pynball-1.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7edb4f0534f5bb1e0741eddc2ebd1976b890d92039160d878a375ed58bfbbec8
MD5 104c3d4f23567d72577912aaaa5f20c4
BLAKE2b-256 1181ca3dbdcf55858fdc936b91362e291573652cc92cf0c168f1dde515b4813e

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 Sentry Error logging StatusPage Status page