我点评了the Python 2.7.5 documentation。我与我的真实项目存在问题,但在这里创建了一个小型测试项目来简洁地重现问题。想象一下,存放在〜/开发/测试对python进口感到困惑
这里以下布局的包结构:
Test/
__init__.py
foo.py
sub/
__init__.py
test_foo.py
和代码(__init__.py
文件empy):
foo.py
def bar():
print("hello world")
test_foo.py
import Test.foo
# also tried from Test import foo
def main():
foo.bar()
if __name__ == "__main__":
main()
当试图从终端运行test_foo.py
(即, python test_foo.py
)我得到:
Traceback (most recent call last):
File "test_foo.py", line 1, in <module>
import Test.foo
ImportError: No module named Test.foo
我试图导入从子模块中的测试文件包(foo.py)主文件(在我真正的项目的子模块为单位测试代码)。奇怪地使用Sublime text 2编辑器和插件python test runner,我可以运行我的单独测试,但我无法构建测试文件。它给了我上面的错误。
错误信息中有一个输入错误:'import foo',你的文件代码指出'import test.foo' –
@kroolik,这是一个错误,应该说:Test.foo,我已经修复了它。 – Matt
您不应创建并运行放置在模块中的脚本。脚本应该始终在模块之外。 –