Simple Interactive Python Version Management for Managing Python 2, Python 3, and Development Builds

Nimit Kalra nimit at nimitkalra.com
Wed May 6 20:08:33 EDT 2015


Hey all,

Wrote a ~600 line Bash script that takes the pain out of managing Python
versions (from 2.x.x to 3.x.x to development builds). Below are some more
details. The entire project can be found on GitHub at
https://github.com/qw3rtman/p. Let me know if you find it useful. :)

p: Python Version Management, Simplified.
=================================

This GIF sums up the essence of p: http://i.imgur.com/rFrAIlc.gif.

p is powerful and feature-packed, yet simple; both in setup and use. There
are no tricky settings, options, or crazy dependencies. p is just a helpful
~600 line Bash script that gets the job done.

p let's you quickly switch between Python versions whenever you need to,
removing the barrier between Python 2.x.x and 3.x.x.

p was heavily inspired by n, a version manager for Node.js.

p is also great for getting started using Python development versions. Use
p latest to get up and running with the latest development version of
Python!


Getting Started
============

After the super painless drag-and-drop installation, you can start using p
right away.


Usage
=====

Usage: p [COMMAND] [args]

Commands:

p                              Output versions installed
p status                       Output current status
p <version>                    Activate to Python <version>
    p latest                     Activate to the latest Python release
    p stable                     Activate to the latest stable Python
release
p use <version> [args ...]     Execute Python <version> with [args ...]
p bin <version>                Output bin path for <version>
p rm <version ...>             Remove the given version(s)
p prev                         Revert to the previously activated version
p ls                           Output the versions of Python available
    p ls latest                  Output the latest Python version available
    p ls stable                  Output the latest stable Python version
available

Options:

-V, --version   Output current version of p
-h, --help      Display help information


Installation
========

After downloading the Bash script, simply copy it over to your $PATH and p
will take care of the rest.

$ wget https://github.com/qw3rtman/p/releases/download/v0.1.0/p
$ chmod +x p
$ mv p /usr/local/bin

If you don't have wget on your system, you can download the p binary from
the releases page and follow the above steps from the second one onward.

Updating
=======

Simply follow the above steps and swap out the old Bash script with the new
one!


TODO
=====

greater abstraction between Python 2.x.x and 3.x.x
also manage pip
per-directory/project Python version
also manage PyPy

FAQs
====

How does p differ from pyenv?

 - p is designed for the average Python user. You can get up and running
with the latest development build of Python with one simple command: p
latest. No configuration is necessary; p manages everything for you.

 - On the other hand, pyenv is for the more advanced user who is
comfortable configuring their Python environment to all their needs. p
provides the basics in one easy to use aesthetically-pleasing command.

 - Additionally, p is easier to use. To switch your Python version, simply
run p and you'll be presented with a list of installed Python versions to
select from that you can scroll through with your arrow keys and select
with the return key.

 - p is great at dealing with any version of Python. If it's not installed,
running p <version>will download the source, configure it for your system,
and compile it, all in one simple command.


How does p work?

 - p stores each Python version installed in /usr/local/p/versions/python.
When a Python version is activated, p creates a symbolic link to the Python
binary located at/usr/local/p/versions/python/python. Since p prefixes the
$PATH with/usr/local/p/versions/python, this version of python is found
first; hence, it is used over the default version of Python installed on
your system.


How do I revert back to my default Python version?

 - Simply run p default and p will remove the symbolic link described
above; therefore reverting back to your default Python version.


Does p download the source each time I activate or install a version?

 - Nope. p stores the source for each of the versions installed, allowing
for quick activations between already-installed versions.


How do I get this working on Windows?

 - Unfortunately, p is not supported on Windows at the time. If you know of
a workaround, send in a pull request!

Let me know what you think.

Thanks,
-- 
Nimit Kalra
nimit at nimitkalra.com | @qw3rtman
http://www.nimitkalra.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20150506/70526440/attachment.html>


More information about the Python-list mailing list