Zaa*_*Hai 3 python python-import python-2.7
我有一个我想要从中导入的模块名称列表__init__.py。
$ mkdir /tmp/pkg
$ touch /tmp/__init__.py /tmp/pkg/{a.py,b.py}
$ cat /tmp/pkg/__init__.py
to_import = ["a", "b"]
import importlib
for toi in to_import:
importlib.import_module(toi)
$ cd /
$ python
>>> import tmp.pkg
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "tmp/pkg/__init__.py", line 5, in <module>
importlib.import_module(toi)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named a
>>>
Run Code Online (Sandbox Code Playgroud)
python 2.7.4 Ubuntu 64位
问题:那么如何从包中导入包模块__init__.py?
您可以为此使用相对导入。尝试更改/tmp/pkg/__init__.py为以下内容:
to_import = [".a", ".b"]
import importlib
for toi in to_import:
importlib.import_module(toi, __name__)
Run Code Online (Sandbox Code Playgroud)
请注意模块名称和函数第二个参数之前的点import_module。
| 归档时间: |
|
| 查看次数: |
3767 次 |
| 最近记录: |