Python 用鼻子测试。为什么我会得到;ImportError:没有名为bin.app的模块;

Python 用鼻子测试。为什么我会得到;ImportError:没有名为bin.app的模块;,python,Python,我目前正在进行最后一个练习(EX52),学习Python的艰难之路,我正在使用Nose测试代码(这个练习是扩展Nose测试来测试更多的代码) 这是我的文件结构 bin app.py gothonweb __init__.py map.py sessions tests map_tests.py app_tests.py 示例代码使用map_tests.py代码测试map.py文件 from nose.tools import * from gothonw

我目前正在进行最后一个练习(EX52),学习Python的艰难之路,我正在使用Nose测试代码(这个练习是扩展Nose测试来测试更多的代码)

这是我的文件结构

bin
    app.py
gothonweb
    __init__.py
    map.py
sessions
tests
    map_tests.py
    app_tests.py
示例代码使用map_tests.py代码测试map.py文件

from nose.tools import *
from gothonweb.map import *

def test_room():
    central_corridor = Room("Central Corridor" ... 
所以我想我应该通过创建第二个测试文件来扩展它,名为app_tests.py,它测试app.py文件。它包含此代码

from nose.tools import *
from bin.app import *

def test():
    pass
当我运行nosetests时,我得到以下错误:ImportError:没有名为bin.app的模块


我做错了什么?

从您的目录结构可以看出
bin
不是python包。它是一个包含名为
app
的python模块的目录,该模块由
app.py
引用。Python包在文件夹中有一个
\uuuuu init\uuuuuu.py
文件。我可以解释得更详细些,但最好还是贴一个链接供你参考


由于您的
bin
目录中没有
\uuu init\uuuu.py
,因此它只是一个目录,而不是一个包。因为它不是一个包,所以您无法在包中查找
bin
模块

从父目录中,执行以下操作:

touch bin/__init__.py
在Mac/Linux上,或

type NUL>bin\__init__.py

在Windows上

我意识到我不可能在stackoverflow的答案中公正地回答这个主题,所以一个好的参考网站是更好的选择!