문제

Right, I have a structure like so:

/Project
    __init__.py
    script_a.py
    /tests
        __init__.py
        test_something.py

When test_something tries to import using from . import script_a it returns the error Attempted relative import in non-package.

I've put in the empty __init__.py files and added /Project to PYTHONPATH but it still throws up this error!

Any ideas?

EDIT: I have now used a tester.py situated in \Project and call:

import script_a
from tests.test_something import *

Now it works!!

도움이 되었습니까?

해결책

When test_something tries to import using from . import script_a it returns the error Attempted relative import in non-package.

  1. Using one dot . will lead you to the current directory. You should use two dots .. to get to the parent dir.

  2. You cannot run a module with a relative import itself. You can only import it. So test_something.py can only run as an import but it is not possible to run the script as __main__

다른 팁

from Project import script_a should work for you.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top