2
>>> from foo.bar import app
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named foo.bar

我的目录结构:

In /foo:
    __init__.py
    bar.py

In /foo/tests:
    __init__.py
    testing.py

/foo/tests/testing.py我需要从/foo/bar.py. ImportError如果我运行 testing.py 文件,我会得到。

我已经检查sys.path并包含/foo/foo/tests文件夹。

4

3 回答 3

1

sys.path 应该包含 foo 的父目录,而不是 foo 本身

于 2012-10-02T21:50:01.310 回答
1

根据您运行测试的方式,您可以使用absolute imports,并执行以下操作:

from ..bar import app
于 2012-10-03T13:05:02.397 回答
0

如果 /foo 是 on sys.path,那么您可以使用 导入 bar import bar,因此请尝试将 testing.py 中的导入行更改为以下内容:

from bar import app

或者,将根文件夹放在,这将允许您使用、或sys.path导入模块foo及其内容。import foo.XXXfrom foo import XXXfrom foo.XXX import YYY

于 2012-10-02T21:47:53.570 回答