Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saghul/pythonz
Python installation manager supporting CPython, Stackless, PyPy and Jython
https://github.com/saghul/pythonz
Last synced: 4 days ago
JSON representation
Python installation manager supporting CPython, Stackless, PyPy and Jython
- Host: GitHub
- URL: https://github.com/saghul/pythonz
- Owner: saghul
- License: mit
- Created: 2012-03-31T12:31:20.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-12-14T15:21:35.000Z (12 months ago)
- Last Synced: 2024-10-11T01:46:49.566Z (2 months ago)
- Language: Python
- Homepage: http://saghul.github.io/pythonz
- Size: 1.06 MB
- Stars: 749
- Watchers: 30
- Forks: 69
- Open Issues: 21
-
Metadata Files:
- Readme: README.rst
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
- awesome-version-managers - pythonz - A program to automate the building and installation of Python versions. (Version Managers / Python)
- starred-awesome - pythonz - Python installation manager supporting CPython, Stackless, PyPy and Jython (Python)
README
pythonz: a Python installation manager
======================================Overview
--------``pythonz`` is a program to automate the building and installation of Python versions in the user's ``$HOME``. This is
a fork of the original project, `pythonbrew `_.The original project seems to be unmaintained, and it also has some extra features which I don't really
need, so I made this fork to make something a bit simpler that works for *me*. You may also find it
useful.CPython, Stackless, PyPy and Jython are supported.
Installation
------------The recommended way to download and install ``pythonz`` is to run these statements in your shell::
curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
or::
fetch -o - https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
After that, ``pythonz`` installs itself to ``~/.pythonz``.
Please add the following line to the end of your ``~/.bashrc``::
[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc
If you need to install ``pythonz`` into somewhere else, you can do that by setting a ``PYTHONZ_ROOT`` environment variable::
export PYTHONZ_ROOT=/path/to/pythonz
curl -kLO https://raw.github.com/saghul/pythonz/master/pythonz-install
chmod +x pythonz-install
./pythonz-installFor Systemwide (Multi-User) installation
----------------------------------------If the install script is run as root, ``pythonz`` will automatically install into ``/usr/local/pythonz``.
``pythonz`` will be automatically configured for every user on the system if you install it as root.
After installing it, where you would normally use ``sudo``, non-root users will need to use ``sudo-pythonz``::
sudo-pythonz install 3.8.0
Before installing Python versions via ``pythonz``
-------------------------------------------------You might want to install some optional dependencies, for functionality that
is often expected to be included in a Python build (it can be a bummer to discover these missing and
have to rebuild your Python setup). These include the following, ordered by (very roughly guessed)
probability that you will need them:Debian family (Ubuntu...)
^^^^^^^^^^^^^^^^^^^^^^^^^::
sudo apt-get install build-essential zlib1g-dev libbz2-dev libssl-dev libreadline-dev libncurses5-dev libsqlite3-dev libgdbm-dev libdb-dev libexpat-dev libpcap-dev liblzma-dev libpcre3-dev libffi-dev
If you need tkinter support, add ``tk-dev``.
RPM family (CentOS, RHEL...)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel readline-devel ncurses-devel sqlite-devel gdbm-devel db4-devel expat-devel libpcap-devel xz-devel pcre-devel libffi-develIf you need tkinter support, add ``tk-devel``.
macOS
^^^^^Apple stopped including the OpenSSL development headers in OS X El Captian and macOS Sierra. You will need to install OpenSSL with Homebrew (or MacPorts). This document assumes usage of Homebrew.
::
xcode-select --install
brew install opensslYou should then add variables for ``CPPFLAGS`` and ``LDFLAGS`` to your shell environment. This allows ``pythonz`` to find the OpenSSL installed by Homebrew.
::
export CPPFLAGS="-I/usr/local/opt/openssl/include"
export LDFLAGS="-L/usr/local/opt/openssl/lib"Usage
-----::
pythonz command [options] version
See the available commands
^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz help
To get help on each individual command
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz help
Install some Python versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz install 2.7.3
pythonz install -t stackless 2.7.2
pythonz install -t jython 2.5.2
pythonz install -t pypy --url https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-osx64.tar.bz2 1.8
pythonz install --verbose 2.7.2
pythonz install --configure="CC=gcc_4.1" 2.7.2
pythonz install --url http://www.python.org/ftp/python/2.7/Python-2.7.2.tgz 2.7.2
pythonz install --file /path/to/Python-2.7.2.tgz 2.7.2
pythonz install 2.7.3 3.2.3
pythonz install -t pypy3 2.3.1List the installed Python versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz list
List all the available Python versions for installing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz list -a
List all the available Jython versions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz list -a -t jython
Uninstall the specified Python
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz uninstall 2.7.3
pythonz uninstall -t stackless 3.2.2Remove stale source folders and archives
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz cleanup
Upgrade ``pythonz`` to the latest version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz update
Check the installed ``pythonz`` version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz version
Print the path to the interpreter of a given version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^::
pythonz locate 2.7.7
Recommended way to use a pythonz-installed version of Python
------------------------------------------------------------For Python <= 3.2
^^^^^^^^^^^^^^^^^Use ``virtualenv``, e.g.::
mkvirtualenv -p $(pythonz locate 2.7.3) python2.7.3
For more information about ``virtualenv``, check out `the virtualenv documentation `_.
For Python >= 3.3
^^^^^^^^^^^^^^^^^Use ``venv`` directly from Python, e.g.::
/usr/local/pythonz/pythons/CPython-3.4.1/bin/python3 -m venv python3.4.1
For more information about ``venv``, check out `the venv documentation `_.
DTrace support
--------------CPython versions 2.7.6 and 3.3.4 can be built with DTrace suport. Patches adding support
for DTrace have been taken from `this page `_
by Jesús Cea.Building Python with DTrace support::
pythonz install --configure="--with-dtrace" 2.7.6