New submission from Mariano M. Chouza <mcho...@gmail.com>:

When trying to import a module from a ZIP archive containing more than 65535 
files, the import process fails:

$ python3 -VV
Python 3.6.4 (default, Jan  6 2018, 11:49:38) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]
$ cat create_zips.py 
from zipfile import ZipFile
with ZipFile('below.zip', 'w') as zfp:
    for i in range(65535):
        zfp.writestr('m%d.py' % i, '')
with ZipFile('over.zip', 'w') as zfp:
    for i in range(65536):
        zfp.writestr('m%d.py' % i, '')
$ python3 create_zips.py 
$ python -m zipfile -l below.zip | (head -2 && tail -2)
File Name                                             Modified             Size
m0.py                                          2018-02-26 20:57:32            0
m65533.py                                      2018-02-26 20:57:36            0
m65534.py                                      2018-02-26 20:57:36            0
$ python -m zipfile -l over.zip | (head -2 && tail -2)
File Name                                             Modified             Size
m0.py                                          2018-02-26 20:57:36            0
m65534.py                                      2018-02-26 20:57:40            0
m65535.py                                      2018-02-26 20:57:40            0
$ PYTHONPATH=below.zip python3 -c 'import m0'
$ PYTHONPATH=over.zip python3 -c 'import m0'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'm0'

I think the problem is related to the zipimport module not handling the 'zip64 
end of central directory record'.

----------
components: Library (Lib)
messages: 312957
nosy: mchouza
priority: normal
severity: normal
status: open
title: zipimport fails when the ZIP archive contains more than 65535 files
type: behavior
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32959>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to