Closes #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.

This commit is contained in:
Vinay Sajip 2014-04-15 13:56:36 +01:00
commit 4382ad6e02
3 changed files with 22 additions and 2 deletions

View File

@ -9,6 +9,7 @@ import ensurepip
import os
import os.path
import shutil
import struct
import subprocess
import sys
import tempfile
@ -87,6 +88,14 @@ class BasicTest(BaseTest):
self.isdir(self.bindir)
self.isdir(self.include)
self.isdir(*self.lib)
# Issue 21197
p = self.get_env_file('lib64')
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')
if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__'
in os.environ):

View File

@ -1,7 +1,7 @@
"""
Virtual environment (venv) package for Python. Based on PEP 405.
Copyright (C) 2011-2012 Vinay Sajip.
Copyright (C) 2011-2014 Vinay Sajip.
Licensed to the PSF under a contributor agreement.
usage: python -m venv [-h] [--system-site-packages] [--symlinks] [--clear]
@ -30,6 +30,7 @@ optional arguments:
import logging
import os
import shutil
import struct
import subprocess
import sys
import types
@ -132,10 +133,18 @@ class EnvBuilder:
else:
binname = 'bin'
incpath = 'include'
libpath = os.path.join(env_dir, 'lib', 'python%d.%d' % sys.version_info[:2], 'site-packages')
libpath = os.path.join(env_dir, 'lib',
'python%d.%d' % sys.version_info[:2],
'site-packages')
context.inc_path = path = os.path.join(env_dir, incpath)
create_if_needed(path)
create_if_needed(libpath)
# Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX
if ((struct.calcsize('P') == 8) and (os.name == 'posix') and
(sys.platform != 'darwin')):
p = os.path.join(env_dir, 'lib')
link_path = os.path.join(env_dir, 'lib64')
os.symlink(p, link_path)
context.bin_path = binpath = os.path.join(env_dir, binname)
context.bin_name = binname
context.env_exe = os.path.join(binpath, exename)

View File

@ -46,6 +46,8 @@ Core and Builtins
Library
-------
- Issue #21197: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.
- Issue #17498: Some SMTP servers disconnect after certain errors, violating
strict RFC conformance. Instead of losing the error code when we issue the
subsequent RSET, smtplib now returns the error code and defers raising the