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年07月18日 10:46 by ncoghlan, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (4) | |||
|---|---|---|---|
| msg165752 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2012年07月18日 10:46 | |
As noted in #15314, one of the pkgutil tests was failing on Windows because pkgutil.get_importer("") was returning None. On my Fedora system it returns FileFinder("."). I've now tweaked that particular test to use a bogus path string so that None is the expected result on all platforms. However, the cross-platform discrepancy is a little disturbing - I would have expected the operation to either fail or succeed regardless of platform. Since pkgutil.get_importer is now just a wrapper that takes care of checking path_importer_cache and then walking sys.path_hooks, I believe the actual culprit is FileFinder.path_hook()("") returning None (I'm currently downloading and installing 3.3b1 on my gaming machine to confirm that) |
|||
| msg165758 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2012年07月18日 11:50 | |
Well, that's weird. A manual test on my Windows 7 gaming rig indicates that the old test *should* have worked on Windows as well.
I have no idea how to investigate this further. David, are you able to check what pkgutil.get_importer("") returns when running locally on your Windows buildbots?
An example of the error the buildbots were getting: http://buildbot.python.org/all/builders/x86%20Windows7%203.x/builds/5450/steps/test/logs/stdio
|
|||
| msg165797 - (view) | Author: David Bolen (db3l) * | Date: 2012年07月18日 20:27 | |
With a local build on my buildbot of the tip of the default branch, pkgutil.get_importer('') returns FileFilter('.'). The tests also passed.
However, after checking here and realizing the offending code had been removed from the test, I put it back in and it still fails.
I think the problem is that sys.path[0] is not '' when testing in the buildbot environment (though it is when I run the debug interpreter interactively). Within the buildbot scripts it's a path to the stdlib test zip, so for example in my test tree it's "D:\cygwin\home\db3l\test\build\PCbuild\python33_d.zip".
And if I hand that string to pkgutil.get_importer() I do seem to get None back.
|
|||
| msg165894 - (view) | Author: Alyssa Coghlan (ncoghlan) * (Python committer) | Date: 2012年07月20日 01:17 | |
Ah, that makes sense - since the zip file doesn't exist on buildbots, returning None is the correct result. Mystery explained, thanks :) |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:33 | admin | set | github: 59589 |
| 2012年07月20日 01:17:20 | ncoghlan | set | status: open -> closed resolution: not a bug messages: + msg165894 title: pkgutil.get_importer("") was returning None on Windows buildbots -> pkgutil importlib migration test was failing on Windows buildbots |
| 2012年07月18日 20:27:02 | db3l | set | messages: + msg165797 |
| 2012年07月18日 11:50:26 | ncoghlan | set | nosy:
+ db3l messages: + msg165758 title: FileFinder.path_hook()("") returns None on Windows -> pkgutil.get_importer("") was returning None on Windows buildbots |
| 2012年07月18日 10:48:43 | ncoghlan | set | type: behavior stage: test needed |
| 2012年07月18日 10:46:02 | ncoghlan | create | |