我在环境中使用64Python 3.3.1
位在Ubuntu 13.04
64 位下运行的Eclipse 4.3
64 位。我的项目位于以下目录结构中。Pydev 2.7.6
virtualenv
Dictionary
|
----------------------------
| |
src test
| |
petaapan petaapan
| | | |
__init__.py logging __init__.py logging
| | | |
__init__.py mplogging.py __init__.py test_mplogging.py
当我尝试test_mplogging.py
使用pytest
作为测试运行器运行时,我得到以下结果:
pydev debugger: starting
============================= test session starts ==============================
platform linux -- Python 3.3.1 -- pytest-2.3.5
plugins: pep8, cache
collected 0 items / 1 errors
==================================== ERRORS ====================================
______________________ ERROR collecting test_mplogging.py ______________________
File "/home/jonathan/UC/Git Repositories/isiiwesuu/Dictionary/tests/petaapan/logging/test_mplogging.py", line 11
in <module>
> import petaapan.logging.mplogging as ml
E ImportError: No module named 'petaapan.logging.mplogging'
我sys.path
已经Dictionary/test
提前了,Dictionary/src
所以首先搜索测试树,看起来这就是常规包导入失败的原因。
我的下一次尝试是使用命名空间包做同样的事情,所以我删除了所有__init__.py
文件并得到以下结果:
pydev debugger: starting
============================= test session starts ==============================
platform linux -- Python 3.3.1 -- pytest-2.3.5
plugins: pep8, cache
collected 0 items / 1 errors
==================================== ERRORS ====================================
______________________ ERROR collecting test_mplogging.py ______________________
File "/home/jonathan/UC/Git Repositories/isiiwesuu/Dictionary/tests/petaapan/logging/test_mplogging.py", line 11
in <module>
> import petaapan.logging.mplogging as ml
File "/home/jonathan/UC/Git Repositories/isiiwesuu/Dictionary/tests/petaapan/logging/<frozen importlib._bootstrap>", line 1564
in _find_and_load
> ???
File "/home/jonathan/UC/Git Repositories/isiiwesuu/Dictionary/tests/petaapan/logging/<frozen importlib._bootstrap>", line 1522
in _find_and_load_unlocked
> ???
File "/home/jonathan/UC/Git Repositories/isiiwesuu/Dictionary/tests/petaapan/logging/<frozen importlib._bootstrap>", line 1476
in _find_module
> ???
File "/home/jonathan/isiiwesuu/lib/python3.3/site-packages/_pytest/assertion/rewrite.py", line 68
in find_module
> fd, fn, desc = imp.find_module(lastname, path)
File "/home/jonathan/isiiwesuu/lib/python3.3/imp.py", line 197
in find_module
> "not {}".format(type(name)))
E RuntimeError: 'list' must be None or a list, not <class 'str'>
=========================== 1 error in 0.49 seconds ============================
以下是test_mplogging.py
相关部分:
import logging
from os import getcwd
from multiprocessing import Queue, Process
import petaapan.logging.mplogging as ml
谁能建议我在这种情况下需要做什么?