classification
Title: py_compile.compile: AttributeError on importlib.utils
Type: Stage: resolved
Components: Library (Lib) Versions: Python 3.7, Python 3.6
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: Nosy List: dataflake, xtreak
Priority: normal Keywords:

Created on 2019-04-15 13:51 by dataflake, last changed 2019-04-15 14:29 by xtreak. This issue is now closed.

Messages (4)
msg340271 - (view) Author: Jens Vagelpohl (dataflake) Date: 2019-04-15 13:51
The following code in py_compile.compile fails (tested on 3.6.6 and 3.7.3) with tracebacks that end like the one shown at the bottom. There's an AttributeError about importlib.utils.

"""
    if cfile is None:
        if optimize >= 0:
            optimization = optimize if optimize >= 1 else ''
            cfile = importlib.util.cache_from_source(file,
                                                     optimization=optimization)
        else:
            cfile = importlib.util.cache_from_source(file)
"""

Sample tail end of traceback:

"""
  File "/Users/jens/src/.eggs/Chameleon-3.6-py3.7.egg/chameleon/template.py", line 243, in _cook
    cooked = self.loader.build(source, filename)
  File "/Users/jens/src/.eggs/Chameleon-3.6-py3.7.egg/chameleon/loader.py", line 177, in build
    py_compile.compile(name)
  File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/py_compile.py", line 130, in compile
    cfile = importlib.util.cache_from_source(file)
AttributeError: module 'importlib' has no attribute 'util'
"""
msg340275 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2019-04-15 14:22
Can you please add a simplified script to reproduce this and possibly without any external dependencies? Looking at the traceback it seems to come from the project chameleon at https://github.com/malthe/chameleon/blob/983877e628a75f42c473cb2ea2350fb0727eb85b9/src/chameleon/loader.py#L177 . The file seems standalone without some helper functions from utils file.
msg340276 - (view) Author: Jens Vagelpohl (dataflake) Date: 2019-04-15 14:27
Thank you for the prompt reply.

It turns out this is not a bug in py_compile. Other code we use imports importlib.util briefly for a quick check at module level and then deletes it, also at module scope. Removing the deletion fixes the issue.

Thanks again and apologies!
msg340277 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2019-04-15 14:29
No problem, closing the issue.
History
Date User Action Args
2019-04-15 14:29:56xtreaksetstatus: open -> closed

messages: + msg340277
stage: resolved
2019-04-15 14:27:03dataflakesetresolution: third party
messages: + msg340276
2019-04-15 14:22:28xtreaksetnosy: + xtreak
messages: + msg340275
2019-04-15 13:51:34dataflakecreate