Closes #16340: Handle exception while copying script to venv.

This commit is contained in:
Vinay Sajip 2012-10-28 12:39:39 +00:00
parent 6d50a5447a
commit bdd13fd098

View File

@ -305,11 +305,17 @@ class EnvBuilder:
mode = 'wb'
else:
mode = 'w'
data = data.decode('utf-8')
data = self.replace_variables(data, context)
with open(dstfile, mode) as f:
f.write(data)
shutil.copymode(srcfile, dstfile)
try:
data = data.decode('utf-8')
data = self.replace_variables(data, context)
except UnicodeDecodeError as e:
data = None
logger.warning('unable to copy script %r, '
'may be binary: %s', srcfile, e)
if data is not None:
with open(dstfile, mode) as f:
f.write(data)
shutil.copymode(srcfile, dstfile)
def create(env_dir, system_site_packages=False, clear=False, symlinks=False):