[Python-Dev] Python 3.4 change in importlib/init.py breaking cxFreeze? (original) (raw)
R. David Murray rdmurray at bitdance.com
Mon Mar 10 16:06:26 CET 2014
- Previous message: [Python-Dev] Python 3.4 change in importlib/__init__.py breaking cxFreeze?
- Next message: [Python-Dev] Python 3.4 change in importlib/__init__.py breaking cxFreeze?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, 10 Mar 2014 23:25:17 +1000, Nick Coghlan <ncoghlan at gmail.com> wrote:
On 10 Mar 2014 19:15, "Jurko Gospodnetić" <jurko.gospodnetic at pke.hr> wrote: > > 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?
file is expected to always be set (including when loaded from a zipfile - in that case it's the zipfile name concatenated with the path within the zip file). If it isn't set, there's a buggy loader involved somewhere that isn't setting it properly.
I noticed while using cx_Freeze that file is not set on the main module that cx_Freeze calls (and I found that very annoying :). I'm guessing this is a cx_Freeze artifact and will need to be fixed in cx_Freeze.
--David
- Previous message: [Python-Dev] Python 3.4 change in importlib/__init__.py breaking cxFreeze?
- Next message: [Python-Dev] Python 3.4 change in importlib/__init__.py breaking cxFreeze?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]