Skip to main content

Deprecated

This project is no longer under active development.

You are encouraged to try out pyenv instead.

Overview

pythonbrew is a program to automate the building and installation of Python in the users $HOME.

pythonbrew is inspired by perlbrew and rvm.

Installation

The recommended way to download and install pythonbrew is to run these statements in your shell:

curl -kL http://xrl.us/pythonbrewinstall | bash

After that, pythonbrew installs itself to ~/.pythonbrew.

Please add the following line to the end of your ~/.bashrc:

[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc

If you need to install pythonbrew into somewhere else, you can do that by setting a PYTHONBREW_ROOT environment variable:

export PYTHONBREW_ROOT=/path/to/pythonbrew
curl -kLO http://xrl.us/pythonbrewinstall
chmod +x pythonbrewinstall
./pythonbrewinstall

Readline Support

Python uses a library called readline to allow line editing and command history. If you use Python interactively, it is recommended to install both the readline library and its headers. Otherwise, the arrow keys won’t work in the Python interactive shell.

On Debian and Ubuntu systems, the required package is called libreadline-dev. On Fedora, Red Hat, and CentOS, the package is called readline-devel. No extra packages are required on Arch or Gentoo.

The readline support package must be installed before Python in order to work properly.

For Systemwide(Multi-User) installation

If the install script is run as root, pythonbrew will automatically install into /usr/local/pythonbrew.

The pythonbrew will be automatically configured for every user on the system if you install as root.

After installation, where you would normally use sudo, non-root users will need to use sudopybrew:

sudopybrew install -v -j2 2.7.2

Usage

pythonbrew command [options]

Install some pythons:

pythonbrew install 2.7.2
pythonbrew install --verbose 2.7.2
pythonbrew install --test 2.7.2
pythonbrew install --test --force 2.7.2
pythonbrew install --configure="CC=gcc_4.1" 2.7.2
pythonbrew install --no-setuptools 2.7.2
pythonbrew install http://www.python.org/ftp/python/2.7/Python-2.7.2.tgz
pythonbrew install /path/to/Python-2.7.2.tgz
pythonbrew install /path/to/Python-2.7.2
pythonbrew install 2.7.2 3.2

Permanently use the specified python:

pythonbrew switch 2.7.2
pythonbrew switch 3.2

Use the specified python in current shell:

pythonbrew use 2.7.2

Runs a named python file against specified and/or all pythons:

pythonbrew py test.py
pythonbrew py -v test.py # Show verbose output
pythonbrew py -p 2.7.2 -p 3.2 test.py # Use the specified pythons

List the installed pythons:

pythonbrew list

List the available installation pythons:

pythonbrew list -k

Uninstall the specified python:

pythonbrew uninstall 2.7.2
pythonbrew uninstall 2.7.2 3.2

Remove stale source folders and archives:

pythonbrew cleanup

Upgrades pythonbrew to the latest version:

pythonbrew update
pythonbrew update --master
pythonbrew update --develop

Disable pythonbrew:

pythonbrew off

Create/Remove a symbolic link to python (in a directory on your $PATH):

pythonbrew symlink # Create a symbolic link, like "py2.7.2", for each installed version
pythonbrew symlink -p 2.7.2
pythonbrew symlink pip # Create a symbolic link to the specified script in bin directory
pythonbrew symlink -r # Remove a symbolic link
pythonbrew symlink -v foo # Create a symbolic link to the specified virtual environment python in bin directory

Runs the buildout with specified or current using python:

pythonbrew buildout
pythonbrew buildout -p 2.6.6

Create isolated python environments (uses virtualenv):

pythonbrew venv init
pythonbrew venv create proj
pythonbrew venv list
pythonbrew venv use proj
pythonbrew venv delete proj
pythonbrew venv rename proj proj2

Show version:

pythonbrew version

COMMANDS

install <version>

Build and install the given version of python. Install setuptools and pip automatically.

switch <version>

Permanently use the specified python as default.

use <version>

Use the specified python in current shell.

py <python file>

Runs a named python file against specified and/or all pythons.

list

List the installed all pythons.

list -k <version>

List the available install pythons.

uninstall <version>

Uninstall the given version of python.

cleanup

Remove stale source folders and archives.

update

Upgrades pythonbrew to the latest version.

off

Disable pythonbrew.

symlink

Create/Remove a symbolic link to python (in a directory on your $PATH)

buildout

Runs the buildout with specified or current using python.

venv

Create isolated python environments (uses virtualenv)

version

Show version.

See more details below

pythonbrew help <command>

Changelog

1.3.6 (2015-06-20)

  • Fixed issue #145 Fix setuptools url and updated for new pythons

1.3.5 (2014-07-05)

  • Fixed issue #140 Add Python 2.7.6 as latest 2.x release

  • Fixed issue #142 fix syntax error in pythonbrew/etc/bashrc

1.3.4 (2013-07-14)

  • Fixed issue #107 Fix curl version incompatibilities

  • Fixed issue #109 Remove bogus -n command line arg

  • Fixed issue #118 Fix compilation of Python 2.6.2 and earlier.

  • Fixed issue #120 remove venv create -n option; add a venv create -g option

  • Fixed issue #122 Support Python 2.7.4

  • Fixed issue #123 Updated for new pythons

  • Fixed issue #124 Add Python 2.7.4 and Fix No module named _sqlite3 for 2.7.4

  • Fixed issue #126 fishshell equivalent of etc/bashrc

  • Fixed issue #133 Python-2.7.5 added to pythonbrew/etc/config.cfg

1.3.3 (2013-01-02)

  • Fixed bug: venv rename

  • develop option removed from update command

1.3.2 (2012-12-30)

  • Improved venv command.

1.3.1 (2012-12-25)

  • Fixed issue #80 Python 2.5: Undefine _POSIX_C_SOURCE on Lion to fix 8-byte strings from socket.inet_aton()

  • Fixed issue #86 Fix for #85: Python 2.6.5’s SSL Module fails to build on Ubuntu 11.10+

  • Fixed issue #87 Documentation for getting libreadline to work

  • Fixed issue #88 Add Python 2.6.8 to config.cfg

  • Fixed issue #90 Create pythonbrew_systemwide script entrypoint

  • Fixed issue #94 Fix No module named _sqlite3 on CentOS 5

  • Fixed issue #96 Added Python-3.3.0 to config.cfg.

  • Fixed issue #98 Enhancement: cloning a virtual environment

1.3 (2012-04-21)

  • Fixed issue #62,#70 Pythonbrew’s bashrc $PATH error

  • Fixed issue #74,#76 pythonbrew does not update $PYTHONPATH when changing environments

  • Fixed issue #75 Replace the absolute path of the user’s home with $HOME

  • Fixed issue #68 update to 1.2 fails on OS X 10.7.3

1.2 (2012-04-15)

  • Fixed issue #54 pythonbrew off` doesn’t deactivate the virtualenv (unset the VIRTUAL_ENV env. variable)

  • Added 2.7.3, 3.2.2, 3.2.3

  • Added rename and print_activate command for venv (issue #50)

  • Fixed issue #52 Apply patch for 2.6.5 and earlier

  • Skip tests by default

  • Added –test option for install

  • Removed –no-test option for install

1.1 (2011-08-29)

  • Added –framework, –universal and –static options to install command.

More

see the pythonbrew/Changelog

Metadata

Release files for pythonbrew 1.3.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pythonbrew 1.3.6
File Size Uploaded Provenance Actions
pythonbrew-1.3.6.tar.gz 51.6 kB Without provenance Details for pythonbrew-1.3.6.tar.gz

Release files / pythonbrew-1.3.6.tar.gz

Download URL pythonbrew-1.3.6.tar.gz
Size 51.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8abae704064b23f02eb0da5ceb591791a2c310a60fc30e149532464ddda6317c
BLAKE2b-256 checksum
How to use checksums
89b56998118661bdcbb9353e00dbe890e966dd3047d4d6d69c8bbd78c3f70e4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for pythonbrew 1.3.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page