summaryrefslogtreecommitdiffstats
path: root/Lib/venv/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/venv/__init__.py')
-rw-r--r--Lib/venv/__init__.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
index 8d2deb7..3c0d7af 100644
--- a/Lib/venv/__init__.py
+++ b/Lib/venv/__init__.py
@@ -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):