Как импортировать произвольный исходный файл python (имя файла которого может содержать любые символы и не всегда заканчивается на .py
) в Python 3.3 +?
Я использовал imp.load_module
следующим образом:
>>> import imp
>>> path = '/tmp/a-b.txt'
>>> with open(path, 'U') as f:
... mod = imp.load_module('a_b', f, path, ('.py', 'U', imp.PY_SOURCE))
...
>>> mod
<module 'a_b' from '/tmp/a-b.txt'>
Он по-прежнему работает в Python 3.3, но согласно документации imp.load_module
он устарел:
Документация модуляУстаревший с версии 3.3: ненужные, поскольку загрузчики должны использоваться для загрузочные модули и find_module() устарели.
и imp
рекомендует использовать importlib
:
Примечание Новые программы должны использовать importlib, а не этот модуль.
Каков правильный способ загрузить произвольный исходный файл python в Python 3.3+ без использования устаревшей функции imp.load_module
?