Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!eternal-september.org!feeder.eternal-september.org!border1.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.xs4all.nl!newsfeed3a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'python.': 0.02; 'heavily': 0.04; 'source,': 0.04; 'configure': 0.05; 'inspired': 0.05; 'output': 0.05; 'subject:Python': 0.06; 'binary': 0.07; 'pypy': 0.07; 'versions.': 0.07; 'abstraction': 0.09; 'bash': 0.09; 'key.': 0.09; 'prefixes': 0.09; 'skip:/ 10': 0.09; 'url:github': 0.09; 'url:releases': 0.09; 'python': 0.11; 'url:download': 0.12; 'wrote': 0.14; 'creates': 0.14; 'windows': 0.15; 'barrier': 0.16; 'command.': 0.16; 'command:': 0.16; 'configuring': 0.16; 'kalra': 0.16; 'necessary;': 0.16; 'prev': 0.16; 'script,': 0.16; 'settings,': 0.16; 'think.': 0.16; 'version?': 0.16; 'windows?': 0.16; '\xc2\xa0-': 0.16; 'sender:addr:gmail.com': 0.17; 'thanks,': 0.17; 'hey': 0.18; 'all,': 0.19; 'differ': 0.19; 'user.': 0.19; 'version.': 0.19; 'select': 0.22; 'comfortable': 0.22; 'previously': 0.22; 'install': 0.23; 'installation': 0.23; 'scroll': 0.24; 'helpful': 0.24; 'versions': 0.24; 'environment': 0.24; 'source': 0.25; 'script': 0.25; 'switch': 0.26; 'updating': 0.26; 'second': 0.26; 'supported': 0.26; 'gets': 0.27; 'installed': 0.27; 'quickly': 0.29; 'message-id:@mail.gmail.com': 0.30; 'getting': 0.31; 'easier': 0.31; 'away.': 0.31; 'keys': 0.31; 'symbolic': 0.31; 'run': 0.32; 'running': 0.33; 'display': 0.35; 'done.': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'located': 0.36; 'activate': 0.36; 'crazy': 0.36; 'described': 0.36; 'options:': 0.36; 'revert': 0.36; 'subject:Simple': 0.36; 'list': 0.37; 'project': 0.37; 'system,': 0.38; 'skip:& 10': 0.38; 'manager': 0.38; 'stable': 0.38; 'todo': 0.38; 'version,': 0.38; 'work?': 0.38; 'to:addr:python-list': 0.38; 'does': 0.39; '(from': 0.39; 'use.': 0.39; 'to:addr:python.org': 0.39; 'system.': 0.39; 'skip:p 20': 0.39; 'release': 0.40; 'how': 0.40; 'remove': 0.60; 'skip:u 10': 0.60; 'easy': 0.60; 'removing': 0.60; 'skip:a 30': 0.61; 'new': 0.61; 'entire': 0.61; 'details.': 0.61; 'simply': 0.61; 'simple': 0.61; 'you.': 0.62; 'back': 0.62; "you'll": 0.62; 'advanced': 0.63; 'information': 0.63; 'url:p': 0.64; 'more': 0.64; 'great': 0.65; 'managing': 0.66; 'latest': 0.67; 'url:0': 0.67; 'between': 0.67; 'useful.': 0.68; 'skip:w 30': 0.69; 'default': 0.69; 'presented': 0.69; 'therefore': 0.72; 'to,': 0.72; 'url:i': 0.72; 'url:gif': 0.82; '=====': 0.84; '============': 0.84; 'activated': 0.84; 'pain': 0.84; 'subject:Managing': 0.84; 'tricky': 0.84; 'url:imgur': 0.84; 'essence': 0.91; 'average': 0.93; 'hand,': 0.93; 'subject:Development': 0.95; 'subject:Management': 0.95 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=wpR51tQ+4ffMv4qMs2Kvmf+9AoqPT6y/uB98WN8TQ/o=; b=r2rbs6eu7oM42oHbN//oI3nmuA84Q6VXnUdGgosSNBcfqxwF47lWJ1dOyjbjsIUEha U8JR2K9BX70eGan0ecl6iR2onrW21POZNczznUjaX8mwKyq7ysy+9OU5mrdPT1naHYP9 Lwad6G4d1hmInbchyAcECHhYFxN7117AyY6RgF0bBZsO3ATZr2xOabW0Azu1RS1/ZDVz U3n9eR5VFqK5xnFa78IvPl9G8pcPxxK0T793L8C4bBO7rWW58je1S86slq/ZcH+in2CS FDf+xsTfTwz/rBXvBGqMkczTj0fz4PNzeTOSY8SV2mO4w/gY03Ai36Ov9BudykUclKLh bp9Q== X-Received: by 10.50.40.100 with SMTP id w4mr11298207igk.44.1430957333371; Wed, 06 May 2015 17:08:53 -0700 (PDT) MIME-Version: 1.0 Sender: nimitkalra.com@gmail.com From: Nimit Kalra Date: Wed, 6 May 2015 19:08:33 -0500 X-Google-Sender-Auth: lE6XtGHSk6r_boxjAt_xF8a-zkg Subject: Simple Interactive Python Version Management for Managing Python 2, Python 3, and Development Builds To: python-list@python.org Content-Type: multipart/alternative; boundary=089e0122efec8b6365051572b72f X-Mailman-Approved-At: Fri, 08 May 2015 10:01:10 +0200 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 241 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1431072071 news.xs4all.nl 2925 [2001:888:2000:d::a6]:39214 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:90263 --089e0122efec8b6365051572b72f Content-Type: text/plain; charset=UTF-8 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 Activate to Python p latest Activate to the latest Python release p stable Activate to the latest stable Python release p use [args ...] Execute Python with [args ...] p bin Output bin path for p rm 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 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@nimitkalra.com | @qw3rtman http://www.nimitkalra.com --089e0122efec8b6365051572b72f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hey all,

Wrote a ~600 line B= ash 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 pr= oject can be found on GitHub at=C2=A0https://github.com/qw3rtman/p. Let me know if you find it useful. := )

p:=C2=A0Python Version Management, Simplified.
= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D

This GIF sums up the esse= nce of p:=C2=A0http://i.imgur.co= m/rFrAIlc.gif.

p is powerful and feature-packed, yet simple; bot= h in setup and use. There are no tricky settings, options, or crazy depende= ncies. 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 ne= ed to, removing the barrier between Python 2.x.x and 3.x.x.

p was he= avily 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!


Ge= tting Started
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

After th= e super painless drag-and-drop installation, you can start using p right aw= ay.


Usage
=3D=3D=3D=3D=3D

Usage: p [COMMAND] [args]
Commands:

p =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Output versions inst= alled
p status =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 Output current status
p <version> =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Activate to Pyth= on <version>
=C2=A0 =C2=A0 p latest =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Activate to the latest Python rel= ease
=C2=A0 =C2=A0 p stable =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 Activate to the latest stable Python releasep use <version> [args ...] =C2=A0 =C2=A0 Execute Python <version&= gt; with [args ...]
p bin <version> =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0Output bin path for <version>
p rm <= version ...> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Remove the given = version(s)
p prev =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Revert to the previously activated version<= br>p ls =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 Output the versions of Python available
=C2=A0 = =C2=A0 p ls latest =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0Output the latest Python version available
=C2=A0 =C2=A0 p ls stab= le =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Output the= latest stable Python version available

Options:

-V, --versio= n =C2=A0 Output current version of p
-h, --help =C2=A0 =C2=A0 =C2=A0Disp= lay help information


Installation
=3D=3D=3D=3D=3D=3D=3D=3D
After downloading the Bash script, simply copy it over to your $PATH a= nd p will take care of the rest.

$ wget https://github.com/qw3rtman/p/rele= ases/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 fr= om the releases page and follow the above steps from the second one onward.=

Updating
=3D=3D=3D=3D=3D=3D=3D

Simply follow the a= bove steps and swap out the old Bash script with the new one!

TODO
=3D=3D=3D=3D=3D

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

FAQs
=3D=3D=3D=3D

How does p differ= from pyenv?

=C2=A0- 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 everyth= ing for you.

=C2=A0- 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.

=C2=A0- Additionally, p is easier to us= e. 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.

=
=C2=A0- 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?

=C2=A0- 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 versio= n of Python installed on your system.


How do I revert back to my= default Python version?

=C2=A0- Simply run p default and p will rem= ove the symbolic link described above; therefore reverting back to your def= ault Python version.


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

=C2=A0- Nope. p stores the sou= rce for each of the versions installed, allowing for quick activations betw= een already-installed versions.


How do I get this wor= king on Windows?

=C2=A0- Unfortunately, p is not supported on Window= s at the time. If you know of a workaround, send in a pull request!

= Let me know what you think.

Thanks,
--089e0122efec8b6365051572b72f--