我有以下项目骨架.
ex47
bin/
docs/
ex47/
__init__.py
tests/
__init__.py
game_tests.py
game.py
setup.py
Run Code Online (Sandbox Code Playgroud)
在Aptana Studio工作.在game_tests.py我有
from nose.tools import *
from ex47.game import Room
Run Code Online (Sandbox Code Playgroud)
但Aptana因为无法找到Room而对我大吼大叫,我在'game.py'中定义了Room.当我nosetests在命令行上运行时,我得到错误:导入错误(没有名为游戏的模块).什么似乎是错的?
我看到两个问题:
__init__.py)PYTHONPATH第一个是显而易见的.如果你想让game.py可以导入,ex47.game那么ex47必须是一个有效的包.所以很可能你想把它放在内部ex47,这是一个有效的包?
当谈到第二个问题时,python将ex47在你PYTHONPATH和当前目录中查找(发出命令时你所在的目录).可能没有一个是这种情况,因此ex47无法找到.
考虑到上述情况,如果您有以下目录结构:
ex47
bin/
docs/
ex47/
__init__.py
game.py
tests/
__init__.py
game_tests.py
setup.py
Run Code Online (Sandbox Code Playgroud)
并试图运行这样的测试:
nosetests tests
Run Code Online (Sandbox Code Playgroud)
在最顶层的ex47目录中它应该工作(注意__init__.py在最顶层内没有ex47).
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |