[Python-Dev] Python 3.4 change in importlib/__init__.py breaking cxFreeze?

Jurko Gospodnetić jurko.gospodnetic at pke.hr
Mon Mar 10 10:13:54 CET 2014


   Hi all.

   Python 3.4 introduced a change to Lib/importlib/__init__.py that 
added the following code to it:

> else:
>     # importlib._bootstrap is the built-in import, ensure we don't create
>     # a second copy of the module.
>     _bootstrap.__name__ = 'importlib._bootstrap'
>     _bootstrap.__package__ = 'importlib'
>     _bootstrap.__file__ = __file__.replace('__init__.py', '_bootstrap.py')
>     sys.modules['importlib._bootstrap'] = _bootstrap

   When attempting to use cxFreeze on a project, using Python 3.4. we 
ran into a problem with '__file__' identifier not being defined.

   Could this be a python bug? Why is this code expecting the module 
loaded from importlib/__init__.py to always have a __file__ identifier? 
What is supposed to happen when that code gets loaded from a ZIP archive?

   Just wanted to check here before filing an issue... but if this is an 
issue I hope it can be resolved before the final 3.4 release.

   Best regards,
     Jurko Gospodnetić



More information about the Python-Dev mailing list