This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年03月06日 15:02 by James.Pickering, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (7) | |||
|---|---|---|---|
| msg155018 - (view) | Author: James Pickering (James.Pickering) | Date: 2012年03月06日 15:02 | |
If you run pkgutil.iter_zipimport_modules with a prefix parameter, and the module in question is a package, then the prefix parameter is ignored. The most visible symptom of this is when running pkgutil.walk_packages for a zipfile. Imagine we have a module structure like this (or create one): a/ a/__init__.py a/b/ a/b/__init.__py If we put this structure in a directory, add the directory to sys.path, and run pkgutil.walk_packages(), it will find modules "a" and "a.b". If we put this structure in a zipfile, however, we add this file to sys.path, and run pkgutil.walk_packages(), it will find modules "a" and "b". This is because pkgutil.iter_zipimport_modules ignores the prefix parameter "a.". This is incorrect. This can be fixed by changing line ~344 of Lib/pkgutil.py from: yield fn[0], True to yield prefix + fn[0], True Thanks, James P.s, This is my first Python bug report. I apologise in advance for any poor etiquette. |
|||
| msg155137 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2012年03月08日 00:15 | |
Adding Brett, since the plan is to clear out a lot of the redundant code in pkgutil once importlib is fully bootstrapped as the standard import implementation. (although this will still affect the older versions directly) |
|||
| msg265221 - (view) | Author: Łukasz Langa (lukasz.langa) * (Python committer) | Date: 2016年05月10日 03:06 | |
Brett, Facebook is using the proposed patch in prod since last year. It works fine. Maybe we should just include it for the time being? |
|||
| msg265223 - (view) | Author: Brett Cannon (brett.cannon) * (Python committer) | Date: 2016年05月10日 03:09 | |
I don't deal with pkgutil so I have no problem if you want to go ahead and apply the patch if you think it's reasonable to accept, Łukasz. |
|||
| msg265241 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2016年05月10日 11:49 | |
+1 for just including the fix in the next round of maintenance releases, although a test case would be desirable. |
|||
| msg268306 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2016年06月12日 01:07 | |
New changeset 9649acf7d472 by Łukasz Langa in branch '3.5': Issue #14209: pkgutil.iter_zipimport_modules ignores the prefix for packages https://hg.python.org/cpython/rev/9649acf7d472 New changeset 389b7456a053 by Łukasz Langa in branch 'default': Merge 3.5, issue #14209 https://hg.python.org/cpython/rev/389b7456a053 |
|||
| msg268307 - (view) | Author: Łukasz Langa (lukasz.langa) * (Python committer) | Date: 2016年06月12日 01:09 | |
Done. Fix is going to be present for 3.5.2 and 3.6. Thank you, James. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:27 | admin | set | github: 58417 |
| 2016年06月12日 01:09:36 | lukasz.langa | set | status: open -> closed resolution: fixed messages: + msg268307 versions: + Python 3.5, Python 3.6, - Python 2.7, Python 3.2, Python 3.3 |
| 2016年06月12日 01:07:40 | python-dev | set | nosy:
+ python-dev messages: + msg268306 |
| 2016年05月10日 17:44:09 | brett.cannon | set | assignee: lukasz.langa |
| 2016年05月10日 11:49:16 | ncoghlan | set | messages: + msg265241 |
| 2016年05月10日 03:09:45 | brett.cannon | set | messages: + msg265223 |
| 2016年05月10日 03:06:15 | lukasz.langa | set | nosy:
+ lukasz.langa messages: + msg265221 |
| 2012年03月09日 08:54:28 | eric.snow | set | nosy:
+ eric.snow |
| 2012年03月08日 00:15:20 | ncoghlan | set | nosy:
+ brett.cannon messages: + msg155137 |
| 2012年03月07日 22:06:45 | eric.araujo | set | nosy:
+ pje, ncoghlan stage: test needed |
| 2012年03月06日 15:02:24 | James.Pickering | create | |