python导入模块ImportError

时间:2012-10-14 22:07:13

标签: python import python-module

我正在为django app编写自定义测试运行器。在django app文件夹中,我有一个像folder structure of my package

这样的文件夹

但是当我尝试运行测试时出现错误:

ERROR: AdminLoginTest (unittest.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: AdminLoginTest
Traceback (most recent call last):
  File "D:\\python27\lib\unittest\loader.py", line 252, in _find_tests
    module = self._get_module_from_name(name)
  File "D:\\python27\lib\unittest\loader.py", line 230, in _get_module_f
rom_name
    __import__(name)
  File "D:\\selenium_tests\tests\admin_panel\AdminLoginTest.py",
line 1, in <module>
    from selenium_tests.SeleniumTestCase import SeleniumTestCase
ImportError: No module named selenium_tests.SeleniumTestCase

在SeleniumTestCase中我得到了这样的话:

class SeleniumTestCase(TestCase):
   body

我认为包装没有我的跑步者是错的。 感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:0)

它不起作用,因为如果我是对的,你作为脚本(通过运行单元测试)运行文件AdminLoginTest.py。运行此脚本时,python解释器无法访问selenium_tests

目录

一种解决方案是使用相对导入,即

from ..selenium_tests.SeleniumTestCase import SeleniumTestCase

但是,这不会起作用,因为您将文件AdminLoginTest.py作为脚本运行。仅当文件AdminLoginTest.py作为模块导入时,您才能使用相对导入。

我建议更改目录的结构,将unittests作为顶级目录,将所有其他类作为低级目录。然后导入就可以了。