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

Wiz*_*ard 13 python import

我有这样的python应用程序

/
/crawl.py
/crawl/__init__.py
/crawl/john.py
/tests/test_john.py
Run Code Online (Sandbox Code Playgroud)

我想要做的是运行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
Run Code Online (Sandbox Code Playgroud)

那么如何从爬网文件夹中导入一个类....

joa*_*uin 15

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

/__init__.py
/crawl.py
/crawl/__init__.py
/crawl/john.py
/tests/__init__.py
/tests/test_john.py
Run Code Online (Sandbox Code Playgroud)

你可以做:

from crawl.john import John
Run Code Online (Sandbox Code Playgroud)

要么

from ..crawl.john import John
Run Code Online (Sandbox Code Playgroud)