How to fix “Attempted relative import in non-package” even with __init__.py

后端 未结 19 2579
予麋鹿
予麋鹿 2020-11-21 21:51

I\'m trying to follow PEP 328, with the following directory structure:

pkg/
  __init__.py
  components/
    core.py
    __init__.py
  tests/
    core_test.py         


        
19条回答
  •  广开言路
    2020-11-21 22:30

    For me only this worked: I had to explicitly set the value of package to the parent directory, and add the parent directory to sys.path

    from os import path
    import sys
    if __package__ is None:
        sys.path.append( path.dirname( path.dirname( path.abspath(__file__) ) ) )
        __package__= "myparent"
    
    from .subdir import something # the . can now be resolved
    

    I can now directly run my script with python myscript.py.

提交回复
热议问题