Last active
December 21, 2016 14:28
-
-
Save SpotlightKid/00784cb55a18e2ad653257391b7a6190 to your computer and use it in GitHub Desktop.
Run either pyvenv or virtualenv depending on the version of Python used.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
"""Run either pyvenv or virtualenv depending on the version of Python used. | |
To use this with virtualenvwrappper, install it into a directory on your | |
``PATH`` as 'virtualenv-select' and add the following to your | |
``~/.bashrc``: | |
export VIRTUALENVWRAPPER_VIRTUALENV=virtualenv-select | |
.. note:: | |
To fix the ``lssitepackages`` and ``cdsitepackages`` commands to work | |
with pyvenv-based virtualenvs see: | |
https://bitbucket.org/virtualenvwrapper/virtualenvwrapper/issues/167/virtualenvwrapper_get_site_packages_dir-is | |
""" | |
import argparse | |
import subprocess | |
import sys | |
GET_VERSION_CMD = 'import sys; sys.stdout.write("%i %i" % sys.version_info[:2])' | |
parser = argparse.ArgumentParser(prog="virtualenv-select", add_help=False) | |
parser.add_argument('-p', '--python', metavar='PYTHON_EXE', | |
help='The Python interpreter to use') | |
parser.add_argument('--extra-search-dir', metavar='DIR', action='append', | |
help='Directory to look for setuptools/pip distributions in') | |
args, rargs = parser.parse_known_args(sys.argv[1:]) | |
try: | |
py_ver = tuple(int(v) for v in subprocess.check_output( | |
[args.python or 'python', '-c', GET_VERSION_CMD]).split()) | |
except subprocess.CalledProcessError: | |
py_ver = None | |
if py_ver and py_ver >= (3, 3): | |
virtualenv = 'pyvenv-%i.%i' % py_ver | |
else: | |
virtualenv = 'virtualenv' | |
if args.python: | |
rargs.insert(0, '--python=%s' % args.python) | |
if args.extra_search_dir: | |
rargs.extend(['--extra-search-dir=%s' % dir | |
for dir in args.extra_search_dir]) | |
sys.exit(subprocess.call([virtualenv] + rargs)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment