importlib无法找到模块

时间:2016-08-25 03:14:54

标签: python python-importlib

cat test.py

from importlib import import_module

bar = import_module('bar', package='project')

ls project /

__init__.py  
__init__.pyc
bar.py
bar.pyc

python test.py

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    bar = import_module('bar', package='project')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named bar

列出导入的模块(sys.modules)并不显示任何模块项目

我可以使用python shell导入 bar

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

在酒吧前面需要一个点..: - (

bar = import_module('.bar', package='project')

答案 1 :(得分:0)

import_lib的文档说明了

  

如果以相对术语指定名称,则必须将package参数指定给作为解析包名称的锚点的包(例如import_module(&#39; .. mod&#39;,& #39; pkg.subpkg&#39;)将导入pkg.mod)。

因此表达式也可以写成

bar = import_module('..bar',package='project.bar')