From 4ca70e1394e9fd2057e0174c5f4b422db660e9a7 Mon Sep 17 00:00:00 2001 From: Marcelo Duarte Date: Sun, 25 Sep 2022 14:55:52 -0300 Subject: [PATCH] Fix for creating a new python virtualenv inside a virtualenv/venv This fixes a bug similar to that reported in issues #2525 #2503 and #2299. --- pre_commit/languages/python.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pre_commit/languages/python.py b/pre_commit/languages/python.py index 19fa247e..ce897c96 100644 --- a/pre_commit/languages/python.py +++ b/pre_commit/languages/python.py @@ -211,6 +211,9 @@ def install_environment( envdir = prefix.path(helpers.environment_dir(ENVIRONMENT_DIR, version)) venv_cmd = [sys.executable, '-mvirtualenv', envdir] python = norm_version(version) + # fix for creating a virtualenv inside a virtualenv/venv + if python is None and sys.executable != os.readlink(sys.executable): + python = os.readlink(sys.executable) if python is not None: venv_cmd.extend(('-p', python)) install_cmd = ('python', '-mpip', 'install', '.', *additional_dependencies)