diff --git a/Lib/test/test_venv.py b/Lib/test/test_venv.py index 68bcf535eada10..015f02925505e8 100644 --- a/Lib/test/test_venv.py +++ b/Lib/test/test_venv.py @@ -12,6 +12,7 @@ import pathlib import re import shutil +import struct import subprocess import sys import sysconfig @@ -137,9 +138,14 @@ def _check_output_of_default_create(self): self.isdir(self.bindir) self.isdir(self.include) self.isdir(*self.lib) + # Issue 21197 p = self.get_env_file('lib64') - if os.path.exists(p): - self.assertFalse(os.path.islink(p)) + conditions = ((struct.calcsize('P') == 8) and (os.name == 'posix') and + (sys.platform != 'darwin')) + if conditions: + self.assertTrue(os.path.islink(p)) + else: + self.assertFalse(os.path.exists(p)) data = self.get_text_file_contents('pyvenv.cfg') executable = sys._base_executable path = os.path.dirname(executable) diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py index e5addcc393a1b9..dc9c5991df7e1c 100644 --- a/Lib/venv/__init__.py +++ b/Lib/venv/__init__.py @@ -174,7 +174,6 @@ def create_if_needed(d): context.python_exe = exename binpath = self._venv_path(env_dir, 'scripts') libpath = self._venv_path(env_dir, 'purelib') - platlibpath = self._venv_path(env_dir, 'platlib') # PEP 405 says venvs should create a local include directory. # See https://peps.python.org/pep-0405/#include-files @@ -192,8 +191,12 @@ def create_if_needed(d): create_if_needed(incpath) context.lib_path = libpath create_if_needed(libpath) - context.platlib_path = platlibpath - create_if_needed(platlibpath) + # Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX + if ((sys.maxsize > 2**32) and (os.name == 'posix') and + (sys.platform != 'darwin')): + link_path = os.path.join(env_dir, 'lib64') + if not os.path.exists(link_path): # Issue #21643 + os.symlink('lib', link_path) context.bin_path = binpath context.bin_name = os.path.relpath(binpath, env_dir) context.env_exe = os.path.join(binpath, exename) diff --git a/Misc/NEWS.d/next/Library/2025-07-27-17-03-17.gh-issue-133951.7kwt78.rst b/Misc/NEWS.d/next/Library/2025-07-27-17-03-17.gh-issue-133951.7kwt78.rst deleted file mode 100644 index dfda8e8f10ccf5..00000000000000 --- a/Misc/NEWS.d/next/Library/2025-07-27-17-03-17.gh-issue-133951.7kwt78.rst +++ /dev/null @@ -1,2 +0,0 @@ -Remove lib64-lib symlink creation when creating new virtual environments in -:mod:`venv` module