我有以下项目框架。
ex47
bin/
docs/
ex47/
__init__.py
tests/
__init__.py
game_tests.py
game.py
setup.py
在Aptana Studio上工作。在game_tests.py中我有
from nose.tools import *
from ex47.game import Room
但Aptana因为我无法找到Room而对我大喊大叫,我在'game.py'中将其定义为
类。当我在命令行上运行nosetests
时,我得到错误:导入错误(没有名为游戏的模块)。
什么似乎是错的?
答案 0 :(得分:5)
我看到两个问题:
__init__.py
)PYTHONPATH
第一个是显而易见的。如果您希望使用ex47.game
导入game.py,则ex47
必须是有效的包。所以很可能你想把它放在内部ex47
这是一个有效的包吗?
当谈到第二个问题时,python将在ex47
和当前目录(发出命令时所在的目录)中查找PYTHONPATH
。可能没有一个是这种情况,因此无法找到ex47
。
考虑到上述情况,如果您有以下目录结构:
ex47
bin/
docs/
ex47/
__init__.py
game.py
tests/
__init__.py
game_tests.py
setup.py
并尝试运行这样的测试:
nosetests tests
在最顶层的ex47
目录中应该有效(请注意,最顶层的__init__.py
内没有ex47
)。