nixpkgs/pkgs/development/python-modules/virtualenv/0001-Check-base_prefix-and-base_exec_prefix-for-Python-2.patch
2020-05-24 10:43:24 +02:00

38 lines
1.7 KiB
Diff

From 21563405d6e2348ee457187f7fb61beb102bb367 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sun, 24 May 2020 09:33:13 +0200
Subject: [PATCH] Check base_prefix and base_exec_prefix for Python 2
This is a Nixpkgs-specific change so it can support virtualenvs from Nix envs.
---
src/virtualenv/discovery/py_info.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/virtualenv/discovery/py_info.py b/src/virtualenv/discovery/py_info.py
index 6f12128..74e9218 100644
--- a/src/virtualenv/discovery/py_info.py
+++ b/src/virtualenv/discovery/py_info.py
@@ -51,13 +51,17 @@ class PythonInfo(object):
self.version = u(sys.version)
self.os = u(os.name)
+ config_vars = {} if sys.version_info.major is not 2 else sysconfig._CONFIG_VARS
+ base_prefix = config_vars.get("prefix")
+ base_exec_prefix = config_vars.get("exec_prefix")
+
# information about the prefix - determines python home
self.prefix = u(abs_path(getattr(sys, "prefix", None))) # prefix we think
- self.base_prefix = u(abs_path(getattr(sys, "base_prefix", None))) # venv
+ self.base_prefix = u(abs_path(getattr(sys, "base_prefix", base_prefix))) # venv
self.real_prefix = u(abs_path(getattr(sys, "real_prefix", None))) # old virtualenv
# information about the exec prefix - dynamic stdlib modules
- self.base_exec_prefix = u(abs_path(getattr(sys, "base_exec_prefix", None)))
+ self.base_exec_prefix = u(abs_path(getattr(sys, "base_exec_prefix", base_exec_prefix)))
self.exec_prefix = u(abs_path(getattr(sys, "exec_prefix", None)))
self.executable = u(abs_path(sys.executable)) # the executable we were invoked via
--
2.25.1