mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
Update venv to 3.14.5 (#7897)
This commit is contained in:
1 parent
b432d4cbdc
commit
c77c56d99c
1 file changed
+22
-9
Vendored
+22
-9
@@ -103,8 +103,6 @@ class EnvBuilder:
|
||||
vars = {
|
||||
'base': env_dir,
|
||||
'platbase': env_dir,
|
||||
'installed_base': env_dir,
|
||||
'installed_platbase': env_dir,
|
||||
}
|
||||
return sysconfig.get_path(name, scheme='venv', vars=vars)
|
||||
|
||||
@@ -175,9 +173,20 @@ class EnvBuilder:
|
||||
context.python_dir = dirname
|
||||
context.python_exe = exename
|
||||
binpath = self._venv_path(env_dir, 'scripts')
|
||||
incpath = self._venv_path(env_dir, 'include')
|
||||
libpath = self._venv_path(env_dir, 'purelib')
|
||||
|
||||
# PEP 405 says venvs should create a local include directory.
|
||||
# See https://peps.python.org/pep-0405/#include-files
|
||||
# XXX: This directory is not exposed in sysconfig or anywhere else, and
|
||||
# doesn't seem to be utilized by modern packaging tools. We keep it
|
||||
# for backwards-compatibility, and to follow the PEP, but I would
|
||||
# recommend against using it, as most tooling does not pass it to
|
||||
# compilers. Instead, until we standardize a site-specific include
|
||||
# directory, I would recommend installing headers as package data,
|
||||
# and providing some sort of API to get the include directories.
|
||||
# Example: https://numpy.org/doc/2.1/reference/generated/numpy.get_include.html
|
||||
incpath = os.path.join(env_dir, 'Include' if os.name == 'nt' else 'include')
|
||||
|
||||
context.inc_path = incpath
|
||||
create_if_needed(incpath)
|
||||
context.lib_path = libpath
|
||||
@@ -304,8 +313,11 @@ class EnvBuilder:
|
||||
copier(context.executable, path)
|
||||
if not os.path.islink(path):
|
||||
os.chmod(path, 0o755)
|
||||
for suffix in ('python', 'python3',
|
||||
f'python3.{sys.version_info[1]}'):
|
||||
|
||||
suffixes = ['python', 'python3', f'python3.{sys.version_info[1]}']
|
||||
if sys.version_info[:2] == (3, 14) and sys.getfilesystemencoding() == 'utf-8':
|
||||
suffixes.append('𝜋thon')
|
||||
for suffix in suffixes:
|
||||
path = os.path.join(binpath, suffix)
|
||||
if not os.path.exists(path):
|
||||
# Issue 18807: make copies if
|
||||
@@ -576,7 +588,7 @@ class EnvBuilder:
|
||||
'may be binary: %s', srcfile, e)
|
||||
continue
|
||||
if new_data == data:
|
||||
shutil.copy2(srcfile, dstfile)
|
||||
shutil.copy(srcfile, dstfile)
|
||||
else:
|
||||
with open(dstfile, 'wb') as f:
|
||||
f.write(new_data)
|
||||
@@ -604,8 +616,7 @@ def create(env_dir, system_site_packages=False, clear=False,
|
||||
def main(args=None):
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(prog=__name__,
|
||||
description='Creates virtual Python '
|
||||
parser = argparse.ArgumentParser(description='Creates virtual Python '
|
||||
'environments in one or '
|
||||
'more target '
|
||||
'directories.',
|
||||
@@ -613,7 +624,9 @@ def main(args=None):
|
||||
'created, you may wish to '
|
||||
'activate it, e.g. by '
|
||||
'sourcing an activate script '
|
||||
'in its bin directory.')
|
||||
'in its bin directory.',
|
||||
color=True,
|
||||
)
|
||||
parser.add_argument('dirs', metavar='ENV_DIR', nargs='+',
|
||||
help='A directory to create the environment in.')
|
||||
parser.add_argument('--system-site-packages', default=False,
|
||||
|
||||
Reference in new issue
Block a user