On 04/04/2016 12:15, Peter Otten wrote:
..........

In the example section they have (for 3.4 and above)

spec = importlib.util.spec_from_file_location(module_name, file_path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)

The importlib with all its factories is a bit intimidating; perhaps it's
best to stick with imp.load_source() and wait for some simple helper
functions to appear...
....

maybe two steps ahead :(

when I execute the example with python 3.4.2

C:\code\hg-repos\reportlab>cat tmp\t1.py
import importlib.util
import sys

# For illustrative purposes.
import tokenize
file_path = tokenize.__file__
module_name = tokenize.__name__

spec = importlib.util.spec_from_file_location(module_name, file_path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
# Optional; only necessary if you want to be able to import the module
# by name later.
sys.modules[module_name] = module

C:\code\hg-repos\reportlab>\python34\python tmp\t1.py
Traceback (most recent call last):
  File "tmp\t1.py", line 10, in <module>
    module = importlib.util.module_from_spec(spec)
AttributeError: 'module' object has no attribute 'module_from_spec'

The example does work in python 3.5.0 so I guess the docs are a bit misleading.


--
Robin Becker

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to