从另一级别的文件夹导入类

时间:2011-10-30 08:58:32

标签: python import

我有一个像这样的python应用程序

/
/crawl.py
/crawl/__init__.py
/crawl/john.py
/tests/test_john.py

我要做的是运行需要使用test_john.py的单元测试john.py,但它在另一个文件夹中。

在我的tests/test_john.py中,当我运行它时,我得到了这个

Traceback (most recent call last):
  File "test_john.py", line 2, in <module>
    from john import John
ImportError: No module named john

那么如何从抓取文件夹中导入一个类......

2 个答案:

答案 0 :(得分:14)

如果您的根文件夹位于pythonpath中,并且您将其设置为可导入的包,如下所示:

/__init__.py
/crawl.py
/crawl/__init__.py
/crawl/john.py
/tests/__init__.py
/tests/test_john.py

你可以这样做:

from crawl.john import John

from ..crawl.john import John

答案 1 :(得分:2)

如果您的操作系统支持,请在../crawl目录中添加指向test的符号链接,然后使用from crawl.john import John