Zaa*_*Hai 57 python import module python-importlib
我试图importlib.import_module在Python 2.7.2中使用并遇到奇怪的错误.
考虑以下目录结构:
a
|
+ - __init__.py
- b
|
+ - __init__.py
- c.py
a/b/__init__.py 具有以下代码:
import importlib
mod = importlib.import_module("c")
(在实际代码中"c"有一个名字.)
试着import a.b,产生以下错误:
>>> import a.b
Traceback (most recent call last):
File "", line 1, in
File "a/b/__init__.py", line 3, in
mod = importlib.import_module("c")
File "/opt/Python-2.7.2/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named c
我错过了什么?
谢谢!
Cat*_*lus 71
对于相对进口,您必须:
b)明确提供锚
importlib.import_module('.c', 'a.b')
Run Code Online (Sandbox Code Playgroud)当然,你也可以做绝对导入:
importlib.import_module('a.b.c')
Run Code Online (Sandbox Code Playgroud)
Ger*_*ald 22
我认为最好使用,importlib.import_module('.c', __name__)因为你不需要知道a和b.
我也想知道,如果你必须使用importlib.import_module('a.b.c'),为什么不使用import a.b.c?
小智 11
并且不要忘记__init__.py使用每个文件夹/子文件夹创建一个(即使它们是空的)
| 归档时间: |
|
| 查看次数: |
75280 次 |
| 最近记录: |