summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2020-01-22 23:13:55 +0100
committerFlorian Bruhin <me@the-compiler.org>2020-01-22 23:13:55 +0100
commitb8866e69faca373f3ed92ae43ef845087d20b2b6 (patch)
tree2c06c4786aac2eaace18cd9da902079a62d59750
parent9c425cf2a76f53e7abb8ba4bf654985cde80fe5c (diff)
downloadqutebrowser-b8866e69faca373f3ed92ae43ef845087d20b2b6.tar.gz
qutebrowser-b8866e69faca373f3ed92ae43ef845087d20b2b6.zip
Add --virtualenv flag to mkvenv.py
-rw-r--r--scripts/mkvenv.py30
1 files changed, 24 insertions, 6 deletions
diff --git a/scripts/mkvenv.py b/scripts/mkvenv.py
index 8a6426e47..97a25c83f 100644
--- a/scripts/mkvenv.py
+++ b/scripts/mkvenv.py
@@ -55,6 +55,9 @@ def parse_args() -> argparse.Namespace:
choices=['binary', 'source', 'link'],
default='binary',
help="How to install PyQt/Qt.")
+ parser.add_argument('--virtualenv',
+ action='store_true',
+ help="Use virtualenv instead of venv.")
parser.add_argument('--tox-error',
action='store_true',
help=argparse.SUPPRESS)
@@ -119,8 +122,14 @@ def delete_old_venv(venv_dir: pathlib.Path) -> None:
if not venv_dir.exists():
return
- markers = ['.tox-config1', 'pyvenv.cfg']
- if not any((venv_dir / m).exists() for m in markers):
+ markers = [
+ venv_dir / '.tox-config1', # tox
+ venv_dir / 'pyvenv.cfg', # venv
+ venv_dir / 'Scripts', # Windows
+ venv_dir / 'bin', # Linux
+ ]
+
+ if not any(m.exists() for m in markers):
utils.print_col('{} does not look like a virtualenv, '
'cowardly refusing to remove it.'.format(venv_dir),
'red')
@@ -130,10 +139,19 @@ def delete_old_venv(venv_dir: pathlib.Path) -> None:
shutil.rmtree(str(venv_dir))
-def create_venv(venv_dir: pathlib.Path) -> None:
+def create_venv(venv_dir: pathlib.Path, use_virtualenv: bool = False) -> None:
"""Create a new virtualenv."""
- utils.print_col('$ python3 -m venv {}'.format(venv_dir), 'blue')
- venv.create(str(venv_dir), with_pip=True)
+ if use_virtualenv:
+ utils.print_col('$ python3 -m virtualenv {}'.format(venv_dir), 'blue')
+ try:
+ subprocess.run([sys.executable, '-m', 'virtualenv', venv_dir],
+ check=True)
+ except subprocess.CalledProcessError as e:
+ utils.print_col("virtualenv failed, exiting", 'red')
+ sys.exit(e.returncode)
+ else:
+ utils.print_col('$ python3 -m venv {}'.format(venv_dir), 'blue')
+ venv.create(str(venv_dir), with_pip=True)
def upgrade_pip(venv_dir: pathlib.Path) -> None:
@@ -202,7 +220,7 @@ def main() -> None:
if not args.keep:
utils.print_title("Creating virtual environment")
delete_old_venv(venv_dir)
- create_venv(venv_dir)
+ create_venv(venv_dir, use_virtualenv=args.virtualenv)
upgrade_pip(venv_dir)