Use importlib instead imp for non .py file

387 views Asked by At

I want to import a file as python module with importlib. This file has no .py but .cfg extension. It contains python code.

[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import imp
>>> imp.load_source('myconfig', 'conf.cfg').foo
'bar'
>>> import importlib
>>> importlib.import_module('conf.cfg')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2212, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked
ImportError: No module named 'conf'

I can do it with imp.load_source but it is deprecated. Do it with importlib.import_module convert . as module exploration.

How to import a conf.cfg file with importlib ?

0

There are 0 answers