pythonbrew 1.3.6
Manage python installations in your $HOME
License: MIT
Keywords: pythonbrew pip easy_install distutils setuptools virtualenv

Deprecated
==========

This project is no longer under active development.

You are encouraged to try out `pyenv <https://github.com/yyuu/pyenv>`_ instead.

Overview
========

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

pythonbrew is inspired by `perlbrew <http://github.com/gugod/App-perlbrew>`_ and `rvm <https://github.com/wayneeseguin/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 <https://github.com/utahta/pythonbrew/blob/master/ChangeLog>`_