diff options
Diffstat (limited to 'Lib/venv/__init__.py')
-rw-r--r-- | Lib/venv/__init__.py | 16 |
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): |