我的文件结构是
foo/
__init__.py
bar.py
file __init __。py
def abc():
print 'ABC'
文件bar.py
from foo import abc
我收到了这个错误。
Traceback (most recent call last):
File "foo/bar.py", line 1, in <module>
from foo import abc
ImportError: No module named foo
答案 0 :(得分:4)
像这样导入foo
应该有效,但是你需要确保foo
上面的目录在Python路径上。您可以通过打印sys.path
来检查路径上的内容。
如果您向我们提供有关如何运行代码的更多详细信息,包括对错误的完整回溯,我可以提供更多帮助,但基本建议是检查Python路径是否正确。
答案 1 :(得分:4)
使用相对导入(需要Python 2.6或更高版本):
from . import abc
答案 2 :(得分:1)
导入包时,Python会搜索sys.path
上的目录,查找package子目录。这意味着foo
必须是sys.path
列表中某个目录的子目录。由于bar.py
本身位于foo
目录中,因此可以实现的一种方法是将其父文件夹添加到sys.path
这样(假设foo
是当前的工作目录执行时):
import sys
sys.path.append('..') # add parent folder
from foo import abc