diff options
Diffstat (limited to 'Lib/distutils/archive_util.py')
| -rw-r--r-- | Lib/distutils/archive_util.py | 19 | 
1 files changed, 12 insertions, 7 deletions
diff --git a/Lib/distutils/archive_util.py b/Lib/distutils/archive_util.py index 6dd0445dbe..c06eba351d 100644 --- a/Lib/distutils/archive_util.py +++ b/Lib/distutils/archive_util.py @@ -9,6 +9,12 @@ import os  from warnings import warn  import sys +try: +    import zipfile +except ImportError: +    zipfile = None + +  from distutils.errors import DistutilsExecError  from distutils.spawn import spawn  from distutils.dir_util import mkpath @@ -74,11 +80,6 @@ def make_zipfile(base_name, base_dir, verbose=0, dry_run=0):      available, raises DistutilsExecError.  Returns the name of the output zip      file.      """ -    try: -        import zipfile -    except ImportError: -        zipfile = None -      zip_filename = base_name + ".zip"      mkpath(os.path.dirname(zip_filename), dry_run=dry_run) @@ -105,8 +106,12 @@ def make_zipfile(base_name, base_dir, verbose=0, dry_run=0):                   zip_filename, base_dir)          if not dry_run: -            zip = zipfile.ZipFile(zip_filename, "w", -                                  compression=zipfile.ZIP_DEFLATED) +            try: +                zip = zipfile.ZipFile(zip_filename, "w", +                                      compression=zipfile.ZIP_DEFLATED) +            except RuntimeError: +                zip = zipfile.ZipFile(zip_filename, "w", +                                      compression=zipfile.ZIP_STORED)              for dirpath, dirnames, filenames in os.walk(base_dir):                  for name in filenames:  | 
