72 lines
3.0 KiB
Diff
72 lines
3.0 KiB
Diff
From 6a2f755016c73bff582fff6e8cef62eb4d818b63 Mon Sep 17 00:00:00 2001
|
|
From: Christoph Reiter <reiter.christoph@gmail.com>
|
|
Date: Thu, 17 Jun 2021 18:52:26 +0530
|
|
Subject: [PATCH 069/N] venv creation fixes
|
|
|
|
Co-authored-by: Naveen M K <naveen521kk@gmail.com>
|
|
---
|
|
Lib/venv/__init__.py | 17 +++++++++++++----
|
|
1 file changed, 13 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
|
|
index 6f1af29..83ba0bc 100644
|
|
--- a/Lib/venv/__init__.py
|
|
+++ b/Lib/venv/__init__.py
|
|
@@ -11,6 +11,7 @@ import subprocess
|
|
import sys
|
|
import sysconfig
|
|
import types
|
|
+from sysconfig import _POSIX_BUILD
|
|
|
|
|
|
CORE_VENV_DEPS = ('pip', 'setuptools')
|
|
@@ -119,7 +120,7 @@ class EnvBuilder:
|
|
context.executable = executable
|
|
context.python_dir = dirname
|
|
context.python_exe = exename
|
|
- if sys.platform == 'win32':
|
|
+ if sys.platform == 'win32' and not _POSIX_BUILD:
|
|
binname = 'Scripts'
|
|
incpath = 'Include'
|
|
libpath = os.path.join(env_dir, 'Lib', 'site-packages')
|
|
@@ -266,7 +267,7 @@ class EnvBuilder:
|
|
if not os.path.islink(path):
|
|
os.chmod(path, 0o755)
|
|
else:
|
|
- if self.symlinks:
|
|
+ if self.symlinks and not _POSIX_BUILD:
|
|
# For symlinking, we need a complete copy of the root directory
|
|
# If symlinks fail, you'll get unnecessary copies of files, but
|
|
# we assume that if you've opted into symlinks on Windows then
|
|
@@ -290,7 +291,13 @@ class EnvBuilder:
|
|
if os.path.lexists(src):
|
|
copier(src, os.path.join(binpath, suffix))
|
|
|
|
- if sysconfig.is_python_build(True):
|
|
+ if _POSIX_BUILD:
|
|
+ # copy from python/pythonw so the venvlauncher magic in symlink_or_copy triggers
|
|
+ copier(os.path.join(dirname, 'python.exe'), os.path.join(binpath, 'python3.exe'))
|
|
+ copier(os.path.join(dirname, 'python.exe'), os.path.join(binpath, 'python%d.%d.exe' % sys.version_info[:2]))
|
|
+ copier(os.path.join(dirname, 'pythonw.exe'), os.path.join(binpath, 'python3w.exe'))
|
|
+
|
|
+ if sysconfig.is_python_build(True) and not _POSIX_BUILD:
|
|
# copy init.tcl
|
|
for root, dirs, files in os.walk(context.python_dir):
|
|
if 'init.tcl' in files:
|
|
@@ -308,9 +315,11 @@ class EnvBuilder:
|
|
# We run ensurepip in isolated mode to avoid side effects from
|
|
# environment vars, the current directory and anything else
|
|
# intended for the global Python environment
|
|
+ env = os.environ.copy()
|
|
+ env.pop("MSYSTEM", None)
|
|
cmd = [context.env_exec_cmd, '-Im', 'ensurepip', '--upgrade',
|
|
'--default-pip']
|
|
- subprocess.check_output(cmd, stderr=subprocess.STDOUT)
|
|
+ subprocess.check_call(cmd, stderr=subprocess.STDOUT, env=env)
|
|
|
|
def setup_scripts(self, context):
|
|
"""
|
|
--
|
|
2.36.1
|
|
|