# pythonz **Repository Path**: mirrors_ifduyue/pythonz ## Basic Information - **Project Name**: pythonz - **Description**: Python installation manager supporting CPython, Stackless, PyPy and Jython - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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-install For 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-devel If 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 openssl You 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.1 List 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.2 Remove 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